bash 臨時檔案

2021-06-26 01:08:36 字數 2178 閱讀 2577

1. 臨時檔案目錄/tmp:

使用者可以隨時隨地利用mktemp命令建立臨時檔案與/tmp目錄,這個目錄在每次系統啟動時都會被清空,因此裡面的檔案都是臨時使用的(不能永久儲存),用完就不管的。

任何賬戶都有權在/tmp目錄下建立臨時檔案,完整的讀寫許可權全都給建立它的屬主,並且其它賬戶無權訪問它。

2. 使用mktemp模板建立臨時檔案(本地建立):

#!/bin/bash

#所謂的模板就是指檔名末尾的6個x

#所建立的檔案字首都相同,除了末尾的6個x系統會以乙個隨機字串來替換

#並且保證在乙個目錄中不會產生一樣的隨機字串

#mktemp命令最後會輸出建立的檔名,可以看到最後6個x被替換成乙個隨機字串了

for (( i = 1; i <= 6; i++ ))

do mktemp test.****** #不帶任何引數預設在當前目錄中建立檔案

done

ls -l test.*

乙個簡單的例子:

#!/bin/bash

tmpfile=`mktemp test.******`

echo the script write to temp file $tmpfile

exec 3> $tmpfile

echo this is the first line >&3

echo this is the second line >&3

echo this is the third line >&3

exec 3>&-

echo done! the contents are:

cat $tmpfile

rm -f $tmpfile 2>/dev/null #用完隨手一刪

還有乙個值得警醒的例子:對乙個檔案寫完後必須先關掉才能對其讀,即在對檔案進行讀寫的時候一定要注意不要讀寫之間發生衝突!

#!/bin/bash

tmpfile=`mktemp tmp.******`

exec 3>&1 #備份

exec 1>$tmpfile

#寫入tmpfile

echo xlkjfe

echo ******

exec 1>&- #必須先關閉tmpfile才能使用cat讀取,否則會因為衝突而系統報錯!

exec 1>&3 #但是關閉後必須還要還原,否則cat不能正常輸出到控制台

exec 3>&-a #順便將臨時檔案描述符3關掉

cat $tmpfile #最後可以放心使用cat在控制台上輸出

3. -t選項——在/tmp下建立檔案:

#!/bin/bash

tmpfile=`mktemp -t test.******` #-t選項就表示在/tmp目錄下建立臨時檔案

echo this is a test file > $tmpfile

echo this is the second line of the test >> $tmpfile

echo the temp file is located at $tmpfile

echo the contents are:

cat $tmpfile

rm -f $tmpfile

4. -d建立臨時目錄:

#!/bin/bash

tmpdir=`mktemp -d dir.******`

cd $tmpdir

tmpfile1=`mktemp tmp.******`

tmpfile2=`mktemp tmp.******`

echo writing data to dir $tmpdir

echo this is a test line for $tmpfile1 > $tmpfile1

echo this is a test line for $tmpfile2 > $tmpfile2

echo "ls dir"

ls ..

echo "ls file"

lsecho "cat file1"

cat $tmpfile1

echo "cat file2"

cat $tmpfile2

android臨時檔案

activity 1.啟動乙個新的activity 會呼叫oncreate onstart onresume 2.onpause protected void oncreate protected void onstart 當activity被使用者看到時,呼叫 protected void onr...

Oracle臨時檔案

臨時資料檔案時一種特殊的檔案,當記憶體不足時,oracle用他來儲存一些臨時資料,如排序或雜湊操作。自12c起,對臨時表的操作所產生的undo也會放到臨時表空間中,而在12c之前,這部分undo放在undo表空間,聯動產生redo。臨時表空間以稀疏 sparse 的方式建立 sql create t...

C 建立臨時檔案

1.在臨時檔案只能夠建立乙個臨時檔案並返回該檔案的完整路徑 在臨時檔案只能夠建立乙個臨時檔案並返回該檔案的完整路徑 c documents and settings yourname local settings temp t e6.tmp system.io.path.gettempfilenam...