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」コマンドの使い方です。
