mktempで生成されたファイルを上書きできますか?

mktempで生成されたファイルを上書きできますか?

一時的な場所にファイルをコピーしたいです。

重要な内容を上書きせずにスクリプトが実行されたときにファイルがどこにあるかを知りたいです。

#!/bin/bash

myfile="$(mktemp)"
cp "source" "$myfile"

# work with $myfile

rm "$myfile"

大丈夫に見えますか?私が逃したものはありますか? (権限など?)
このファイルを上書きするのは気分が悪いです。

ベストアンサー1

マニュアルページから

一時ファイルまたはディレクトリを安全に作成し、その名前を印刷します。

確認を追加してmktemp成功したかどうかを確認できます。

myfile="$(mktemp)"
if test $? != 0; then
  exit 1
fi

成功すると、mktemp以前に存在しなかったファイルが生成されます。マニュアルに記載されているようにmktemp設定された権限を使用してファイルを安全に上書きできます。u+rw

おすすめ記事