一時ファイルしたい(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