一時ファイルの作成と削除(シェルプログラミング)
一時ファイルの作成
tempfile=$(mktemp 一時ファイルテンプレート名)
- mktemp(1) コマンドは以下の条件を満たすユニークなファイルを作成する/ファイル名を得ることができます。
- シェルプログラミング上で可能な限り、セキュアな手順で作られたファイルであることが保証されています。
- ファイル作成時にレースコンディションがありません。
- シンボリックリンクを含む、既ファイル名ではありません。
- ファイル名がユニークであること(後述)。
- デフォルトのファイル権限は 0600 になります。
- シェルプログラミング上で可能な限り、セキュアな手順で作られたファイルであることが保証されています。
- 一時ファイルは以下のルールにより作成されます。
- 「X」という文字は置き換え対象となります(テンプレート)。
- 「X」は英数字(大文字・小文字・数字)の62文字からなるランダムに選択された文字です。
- よって連続した「X」の数を増やせば増やすほど、ユニーク性が高まります(衝突確率が減ります)。
一時ファイルの削除
rm -f ${tempfile}
実際にはこれでは不十分です。
異常時の一時ファイルの削除