一時ファイルしたい(mktemp
)
$ mktemp
/var/folders/tv/9pv2t92113g5hw2kp4g351_00000gn/T/tmp.AfnWksCOe2
$ mktemp --tmpdir=.
tmp.EBOCpr7uXX
mktemp
で一時ファイルを作成できます。
ファイルは$TMPDIR
に作成されます。
--tmpdir
オプションでファイルの生成先を変更できます。
ファイル名がランダムに生成されるので、他のスクリプトとの競合を避けることができます。 単体で使うより、シェルスクリプトに組み込むことで力を発揮します。
ファイル名したい
$ mktemp -t example
/var/folders/tv/9pv2t92113g5hw2kp4g351_00000gn/T/example.QaYKwbG8BA
$ mktemp example-XXXXXX
example-uJrVLB
-t
オプションで、ファイル名のprefixを変更できます。
デフォルトはtmp
になっています。
また、引数にファイル名のテンプレートを指定できます。
XXXXX
の部分がX
の数だけランダムな文字に置換されます。
注釈
x
(小文字)ではダメでした。
また、X
のあとに文字列があってもダメでした。
なので、example-XXX.txt
のように拡張子をつけることはできません。
ディレクトリしたい(-d
/ --directory
)
$ mktemp --directory
/var/folders/tv/9pv2t92113g5hw2kp4g351_00000gn/T/tmp.t6ZigUBJUV
$ mktemp --directory --tmpdir=.
./tmp.yuE8DXF3Hx
--directory
オプションで一時的なディレクトリを作成できます。
--tmpdir
オプションと組み合わせて、任意のディレクトリの中に作成できます。
スクリプトしたい
1#!/usr/bin/env bash
2
3# 一時ファイル作成し、ファイル名を取得
4temp_file = $(mktemp)
5# 終了時に削除
6trap 'rm -v "${temp_file}"' EXIT