linux之創建臨時文件的方法


有時候,我們需要創建文件臨時存放一些輸出的信息,創建文件時就可能出現文件名存在的問題。如何創建唯一的文件名,Linux為我們提供幾個方案:

1、mktemp(強烈推薦)

The  mktemp  utility takes the given filename template and overwrites a portion of it to create a unique filename.  The template  may  be  any filename  with  some  number  of  'Xs'  appended  to  it,  for  example /tmp/tfile.XXXXXXXXXX.  If  no  template  is  specified a  default  of tmp.XXXXXXXXXX is used and the -t flag is implied (see below).

mktemp [-V] | [-dqtu] [-p directory] [template]
-d    Make a directory instead of a file.    # 創建臨時目錄

下面演示一下 mktemp 如何使用:

#!/bin/bash

TMPFILE=$(mktemp /tmp/tmp.XXXXXXXXXX) || exit 1
echo "program output" >> $TMPFILE

2、$RANDOM

    編程中,隨機數是經常要用到的。BASH也提供了這個功能:$RANDOM 變量,返回(0-32767)之間的隨機數,它產生的是偽隨機數,所以不應該用於加密的密碼。

#!/bin/bash

TMPFILE="/tmp/tmp_$RANDOM"
echo "program output" >> $TMPFILE

 

3、$$變量

    Shell的特殊變量 $$保存當前進程的進程號。可以使用它在我們運行的腳本中創建一個唯一的臨時文件,因為該腳本在運行時的進程號是唯一的。


    這種方法在同一個進程中並不能保證多個文件名唯一。但是它可以創建進程相關的臨時文件。

#!/bin/bash

TMPFILE="/tmp/tmp_$$"
echo "program output" >> $TMPFILE


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM