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...