「分かりそう」で「分からない」でも「分かった」気になれるLinuxコマンド辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるLinuxコマンド辞典

mktemp

スポンサーリンク

何するコマンド?

ファイル名が一意な一時ファイルを作るときに使うコマンド



書き方

mktemp [オプション] [ファイル名]



オプション

オプション説明
-Vバージョン情報を表示する
Print the version and exit.
-dディレクトリを作る
Make a directory instead of a file.
-p【ディレクトリ】作った一時ファイルを【ディレクトリ】に出力する
Use the specified directory as a prefix when generating the temporary filename. The directory will be overridden by the user’s TMPDIR environment variable if it is set. This option implies the -t flag (see below).
-qエラーメッセージを表示しない
Fail silently if an error occurs. This is useful if a script does not want error output to go to standard error.
-tうんちゃらかんちゃら。
Generate a path rooted in a temporary directory. This directory is chosen as follows:
・If the user’s TMPDIR environment variable is set, the directory contained therein is used.
・Otherwise, if the -p flag was given the specified directory is used.
・If none of the above apply, /tmp is used.
-u安全ではないモードで動かすよ。できれば使わないでね
Operate in ‘‘unsafe’’ mode. The temp file will be unlinked before mktemp exits. This is slightly better than mktemp(3) but still introduces a race condition. Use of this option is not encouraged.

OSによってオプションは違うようです。


補足事項

オプションを何もつけないで

mktemp

を実行すると、例えば

/tmp/tmp.oRDtM21681

のようなファイルが作られます。

一時ファイルが作られる場所は、環境変数「TMPDIR」が設定されていればそのディレクトリ、設定されていなければ「/tmp」のようです。
任意の場所に作りたい場合は「-p」オプションを使います。

「-p」オプションを付けて

mktemp -p ./

のような形で実行すると、指定ディレクトリ内に一時ファイルが作られます。
この例では、今いるディレクトリを示す「./」を指定しているので、今いるディレクトリ内に一時ファイルが作られます。

また、作られる一時ファイル名の書式を指定することも できます。
ファイル名の書式は

任意の名前+「X」を3つ以上

で指定してください。
「X」を3つ以上指定した部分が、適当な文字列に置き換わります。

例えば

mktemp -p ./ hoge.XXXXX

を実行すると、今いるディレクトリ内に

hoge.21773

のようなファイル名で一時ファイルが作られます。
「X」1つが1桁に対応しているので、桁数を増やして

mktemp -p ./ hoge.XXXXXXXXXX

のような指定をすれば、出来上がるファイルも

hoge.DmyNE21779

のようにランダムな文字列部分が増えます。

また本来の使い方とは違うのでしょうが、書式部分にディレクトリを指定することも できます。
例えば

mktemp /hoge/hoge.XXXXX

のような指定をすると「/hoge」ディレクトリ内に「hoge.12345」のような名前の一時ファイルが作られます。

あとは、そうですね。

ファイルではなくディレクトリを作ることもできます。
「-d」オプションを付与して

mktemp -d

を実行すると、名前の付け方はファイルのときと同じで、ディレクトリが作られます。

そんなところでしょうか。
これが「mktemp」コマンドの使い方です。

スポンサーリンク


書籍画像