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
任意の英数字に置き換えられます)。