No.032ファイルとフォルダ

mktemp

エムケーテンプ・一時ファイル・ディレクトリ作成

知識レベル 実践安全に試せる一般ユーザーで使える

予測しにくい一意名を用いて一時ファイルや一時ディレクトリを作成します。/tmpを手書きで組み立てるより安全で、スクリプトの事故を減らせます。

答えよく使う形

  1. 予測しにくい一時ファイル名を返します
  2. 一時ディレクトリを安全寄りに作成できます
  3. 作成先ディレクトリを指定します
visitor@goodly: ~

$ mktemp

/tmp/tmp.ABC123XYZ

$ mktemp -d

/tmp/tmp.QWE456RTY

$ mktemp -p /tmp app.XXXXXX

どんなコマンド?

こんなときに

一時作業領域を安全に作りたい時、並列実行でも衝突しにくい作業ファイルが必要な時、スクリプトの中間生成物を扱う時に使います。

mktempは、一時ファイルや一時ディレクトリを安全に作るためのコマンドです。/tmp/work.$$のような単純な名前付けは競合や乗っ取りの危険がありますが、mktempは予測しにくい名前を用いて衝突を避けやすくします。

実務では、整形途中の中間ファイル、差分生成前の退避場所、ログの一時集計、展開先ディレクトリなどで重宝します。特に複数プロセスが同時に動く環境や、世界書込可能な一時領域を使う環境では、mktempを使うかどうかで安全性が大きく変わります。

重要なのは「作って終わり」にしないことです。一時ファイルや一時ディレクトリは使い終わったら削除し、trapなどで異常終了時にも片付ける設計にすると品質が上がります。

書き方とオプション

組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。

$ mktemp

使用例と実行結果

行を押すとコピーできます。

/tmp/tmp.ABC123XYZ
予測しにくい一時ファイル名を返します。
/tmp/tmp.QWE456RTY
一時ディレクトリを安全寄りに作成できます。

まず安全に試す

3分ミッション

手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。

0 / 2

つまずいたとき

/tmp/name.$$のように自前で一時名を作っていた

原因衝突や横取りに弱い実装です。

こうするmktempで一意名を確保し、trapで削除まで設計します。

一時ファイルが残り続ける

原因後片付け処理を入れていません。

こうする成功時も異常終了時も削除するようtrapを使います。

終わったときの数(戻り値)

$ echo $?

  • 0正常終了。一時ファイルまたは一時ディレクトリの作成に成功しました。
  • >0雛形不正、作成権限不足、作成場所の問題などで失敗しました。

気をつけることと入れ方

気をつけること

危険度は低いですが、一時ファイルを作って放置すると情報漏えいや掃除漏れの原因になります。秘匿データを扱う場合は権限と後片付けも必ず設計してください。

環境による違い

mktempはPOSIXの中核標準ではなく、実装差があります。雛形の扱い、既定の作成場所、-tの意味などは環境差が出やすいため、記事では使用例を雛形付きで明確に示すと安全です。

確かめた環境2026-04-09 に確認

よくある質問

mktempは絶対に安全ですか。

安全性を高めますが、作成後の権限管理や掃除設計まで含めて考える必要があります。

一時ディレクトリにも使えますか。

はい。-dを付けると一時ディレクトリを作成できます。

mktemp を最後まで読みました。

Linux コマンド辞典に戻る67 / 144

Goodly のメニュー