スクリプトの実行中に、/tmp
に一時ファイルを作成したい ディレクトリ。
そのスクリプトの実行後、そのスクリプトによってクリーンアップされます。
シェルスクリプトでそれを行う方法は?
承認された回答:
tmpfile=$(mktemp /tmp/abc-script.XXXXXX)
: ...
rm "$tmpfile"
ファイルのファイル記述子を開いて削除することにより、スクリプトが終了したときに(キルやクラッシュを含む)ファイルが確実に削除されるようにすることができます。ファイルは引き続き使用可能です(スクリプト用。実際には他のプロセス用ではありませんが、/proc/$PID/fd/$FD
ファイル記述子が開いている限り、回避策です)。ファイルが閉じられると(プロセスが終了するとカーネルが自動的に実行します)、ファイルシステムはファイルを削除します。
tmpfile=$(mktemp /tmp/abc-script.XXXXXX)
exec 3>"$tmpfile"
rm "$tmpfile"
: ...
echo foo >&3