TEMPFILE(1)

名前
tempfile - 安全な一時ファイルの作成

書式
tempfile [-d DIR] [-p STRING] [-s STRING] [-m MODE] [-n FILE] [--directory=DIR] [--prefix=STRING] [--suffix=STRING] [--mode=MODE] [--name=FILE] [--help] [--version]

説明

tempfile は、一時ファイルを安全な方法で作成します。ファイル名の選択に tempnam(3) を使用し、これを O_RDWR | O_CREAT | O_EXCL を用いてオープンします。ファイル名は標準出力に出力されます。ディレクトリの選択に関する実際のステップは、tempnam(3) を参照してください。

ファイルを作成するディレクトリを、以下の順番で探します (しかし確実なことは tempnam(3) を参照してください)。

a)  環境変数 TMPDIR が存在し、適切なディレクトリ名が設定されていれば、これを使用します。

b)  そうでない場合、--directory 引数が指定されていて適切であれば、これを使用します。

c)  そうでない場合、P_tmpdir (<stdio.h> で定義) が適切であれば、これを使用します。

d)  最後に、実装で定義したディレクトリ (/tmp) を使用します。

オプション

-d, --directory DIR
    ファイルを DIR に配置します。

-m, --mode MODE
    ファイルのモードを 0600 に代えて MODE で開きます。

-n, --name FILE
    ファイル名として tempnam(3) に代えて FILE を使用します。このオプションを与えると、-d, -p, -s の各オプションを無視します。

-p, --prefix STRING
    STRING の 5 文字までを名前の生成に使用します。

-s, --suffix STRING
    STRING を末尾にするファイルを生成します。

--help
    使用方法を標準出力に表示し、正常終了します。

--version
    バージョン情報を標準出力に表示し、正常終了します。

戻り値
終了ステータスが 0 は一時ファイルが正常に作成できたことを意味します。その他の終了ステータスはエラーです。

バグ
NFS パーティションでファイルを作成する際、排他作成は保証されません。tempfile は一時ディレクトリを作成できません。tempfile は非推奨です。代わりに mktemp(1) を使用してください。

例
    #!/bin/sh
    #[...]
    t=$(tempfile) || exit
    trap "rm -f -- '$t'" EXIT
    #[...]
    rm -f -- "$t"
    trap - EXIT
    exit

関連項目
tempnam(3), mktemp(1)

翻訳
倉澤 望 <nabetaro@debian.or.jp>, 2012
Debian JP Documentation ML <debian-doc@debian.or.jp>