このエントリーをはてなブックマークに追加

mktempというコマンドがあります。システム内でユニークな名前のファイルやディレクトリを作るときに便利です。

とりあえず実行してみます。

# ls -l /tmp/tmp*
ls: cannot access /tmp/tmp*: そのようなファイルやディレクトリはありません
# mktemp
/tmp/tmp.gXRUvoOt3V
# ls -l /tmp/tmp*
-rw------- 1 root root 0 11月 15 21:12 2013 /tmp/tmp.gXRUvoOt3V
# mktemp
/tmp/tmp.OH7gBe6osv
# ls -l /tmp/tmp*
-rw------- 1 root root 0 11月 15 21:12 2013 /tmp/tmp.OH7gBe6osv
-rw------- 1 root root 0 11月 15 21:12 2013 /tmp/tmp.gXRUvoOt3V

空のファイルが出来ていることがわかります。

ユニークな名前でディレクトリを作ることもできます。その場合は-dオプションをつけます。

# mktemp -d
/tmp/tmp.xAVTGUSBuj
# ls -l /tmp/tmp*
-rw------- 1 root root    0 11月 15 21:12 2013 /tmp/tmp.OH7gBe6osv
-rw------- 1 root root    0 11月 15 21:12 2013 /tmp/tmp.gXRUvoOt3V

/tmp/tmp.xAVTGUSBuj:     <= 空のディレクトリが出来てます。
合計 0

以下のようにファイル名を取っておけばシステム内でユニークであることが保障された一時ファイルを手軽に作ってシェルの中で使えます。

# TEMP_FILE_NAME=`mktemp`
# echo $TEMP_FILE_NAME
/tmp/tmp.bKOKwZWOhB

出力先のディレクトリを変えることもできます。

# mktemp --tmpdir=/var
/var/tmp.0k2FXxeybf

ファイルの後ろに識別用の文字列を入れることもできます。

# mktemp --suffix=-test
/tmp/tmp.2mU7VJMTsB-test


コメント投稿
最大255
最大1000
最大255
Email never displayed on this site. 最大255
Site is displayed. 最大255

記事一覧へ