MKTEMP(1)

NAME
mktemp - 產生唯一的臨時文件名

總覽 (SYNOPSIS)
mktemp [-q] [-u] template

描述 (DESCRIPTION)
mktemp 根據 給定的 文件名模板, 改變 其中的 一部分, 從而 生成 臨時文件名. 該文件名 是 唯一的, 可以 讓 其他程序 使用. 模板 爲 任意 文件名, 後接 六個 ‘X’ 例如 /tmp/temp.XXXXXX. 這些 ‘X’ 將被 當前進程號 以及/或者 某個 唯一的 字母組合 替代.

如果 mktemp 成功 產生了 唯一文件名, 就 以 訪問模式 0600 (除非 使用了 -u 選項) 創建 文件, 並且 在 標準輸出 顯示 這個 文件名.

mktemp 用於 讓 shell 腳本程序 使用 可靠的 臨時文件. 多數 shell 程序 的 傳統做法 是 程序名 加上 PID 做 後綴, 產生的 文件名 就是 臨時文件名. 這種 命名策略 容易 預測, 產生的 競爭條件 易於 遭到 攻擊. 使用 相同 命名策略 的 另一個 方法 是 建立 臨時目錄, 這種 做法 相對 安全 一些. 它 可以 保證 臨時文件 不被 破壞, 但是 容易 遭到 簡單的 拒絕服務 攻擊. 所以 建議 改用 mktemp.

選項 (OPTIONS)
有效選項有:

-q  出錯時 不顯示 信息. 用於 禁止 錯誤信息 輸出到 標準錯誤.

-u  以 “不安全” 模式 運行. mktemp 在 退出前 會 刪除 臨時文件. 它 比 mktemp(3) 稍微 好些, 但 仍然 會 引入 競爭條件. 不鼓勵 使用 這個 選項.

返回值 (RETURN VALUES)
mktemp 成功時 返回 0, 否則 返回 1.

例子 (EXAMPLES)
下列的 sh(1) 片斷 展示了 mktemp 的 簡單用法, 如果 無法 獲得 可靠的 臨時文件, 程序 就 退出.

    TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1
    echo "program output" >> $TMPFILE

照上例, 我們 打算 讓 腳本程序 自己 捕獲 這個 錯誤.

    TMPFILE=`mktemp -q /tmp/$0.XXXXXX`
    if [ $? -ne 0 ]; then
    	echo "$0: Can't create temp file, exiting..."
    	exit 1
    fi

另見 (SEE ALSO)
mkstemp(3), mktemp(3)

歷史 (HISTORY)
源於 OpenBSD

[中文版維護人]
徐明 <xuming@users.sourceforge.net>

[中文版最新更新]
2003/05/13

《中國Linux論壇man手冊頁翻譯計劃》
http://cmpp.linuxforum.net

跋
本頁面中文版由中文 man 手冊頁計劃提供。
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh