mktemp
암호화된 컨테이너나 파일 시스템의 사용을 가장 효과적으로 개선할 수 있는 방법을 알고 싶습니다 .
내가 다루고 있는 문제는 가능하다면 쉘 스크립트가 작업 디렉토리를 포함하는 파일 시스템 내에 임시 파일을 저장하기를 원한다는 것입니다.
정상적인 동작 mktemp
은 환경 변수나 /tmp
. 그러나 암호화된 컨테이너 내부의 파일로 작업하는 경우 임시 데이터가 암호화되지 않은 위치로 유출되는 경우가 많습니다.
tmp
아이디어는 먼저 현재 파일 시스템의 마운트 지점에 디렉토리가 존재하는지 확인하고 /tmp
이를 최후의 수단으로만 사용하는 것입니다. 이를 안정적이고 효율적으로 달성하려면 어떻게 해야 합니까?
편집하다
특정 경로에 대한 마운트 디렉터리를 식별하는 가능한 방법은 다음과 같습니다.
dir=`realpath [path]`;
res=1;
while [ $res -ne 0 ]; do
dir="${dir%/*}";
mountpoint -q "$dir/";
res=$?;
done;
echo "$dir";
그러나 이것이 가장 효율적인지는 잘 모르겠습니다.
답변1
mktemp
-p 옵션을 사용하거나 다른 TMPDIR을 설정할 수 있습니다 .
-p temp-dir, --tmpdir=temp-dir
temp directory for the file. This option is a member of the
tmpdir class of options.
If this option is not provided, mktemp will use the environment
variable TMPDIR to find a suitable directory. If these are not
available, it will fall back to ~/tmp or /tmp. A <file-pat>
command line argument containing a directory component will con-
flict with this option.
예를 들어:
#!/bin/bash
TMPDIR=`pwd`
mktemp
답변2
귀하가 요구하는 내용을 제가 오해하지 않는다면 귀하가 원 mktemp /WORKING/DIR/tmp.XXXXXXXXXX
하거나 원하는 이름은 다음과 같습니다(각 이름은 X
임의의 영숫자로 대체됨).