ファイルを一時的な場所にコピーしたいのですが。
重要なものを上書きしていないことと、スクリプトの実行中にファイルの場所がわかっていることを確認したいと思います。
#!/bin/bash
myfile="$(mktemp)"
cp "source" "$myfile"
# work with $myfile
rm "$myfile"
これは大丈夫ですか?足りないものはありますか? (許可など?)
そのファイルを上書きするのは気が引ける。
マニュアルページから
安全に一時ファイルまたはディレクトリを作成し、その名前を出力します。
mktemp
が成功したかどうかのチェックを追加できます。
myfile="$(mktemp)"
if test $? != 0; then
exit 1
fi
mktemp
が成功した場合、以前は存在しなかったファイルが作成されています。そのファイルは安全に上書きできます。これがmktemp
を使用する目的です。マニュアルに記載されているように、権限はu+rw
に設定されています。