.tmp 文件大部分都是因為不正常關機、或死機後所留下的文件,這些臨時的暫存盤,在你重新開機後,已經沒有任何的用途,可以放心刪除。大家在使用Windows作業系統的時候,可能會常在C盤根目錄發現一些後綴名為TMP的文件,也會在Windows目錄裡發現一個TEMP的目錄,TMP檔案是各種軟體或系統產生的暫存文件,也就是常說的垃圾檔案。 Windows產生的臨時文件,本質上和虛擬記憶體沒什麼兩樣,只不過臨時文件比虛擬記憶體更具針對性,單獨為某個程式服務而已。而它的專一性導致了許多新手對他望而生畏,不刪佔據空間,刪了又怕導致程式無法運作。
Windows 在長年累月的使用之下,在Windows\Temp 裡一定會多出很多的「垃圾」,其實這Temp 裡的所有的檔案、或資料夾都是可以刪除的,有空不妨常常清理下這個Temp 資料夾,但要留意一下,我指的是刪除Temp 裡的東西(Temp 資料夾還是保留的),不是要你把整個Temp 連資料夾一起刪掉。當你在刪除 Temp 裡面的文件的時候,你可能會遇到「存取拒絕」的錯誤訊息,不要緊,這是很正常的。
因為某些是目前的暫存盤,Windows還在使用中,你跳過出現存取拒絕訊息的文件,繼續刪除其它的文件即可. 一般來說,你目前運行著大型的工具軟體的時候,都不應該去碰臨時文件,例如Photoshop會在處理圖形時候產生巨大的臨時文件,如果你認為這不是你創建的文件企圖刪除,可能會導致Photoshop當機。你目前沒有執行程式的話,發現的臨時檔案都可以刪除,以免它們天長日久堆積如山,佔據磁碟空間還是小事,關鍵是它們又多又散亂,會給磁碟掃描整理帶來時間上的無謂消耗,也可能會造成文件分配表混亂,導致文件交叉連結的錯誤。但是不能所有的臨時文件都一概而論。例如,C盤根目錄的TEMP目錄,是許多工具程式臨時檔案的指向目錄,沒有這個目錄的話,臨時檔案無法創建,這些工具軟體就很可能會出錯,所以要刪除的話,只應該清空裡面的臨時文件垃圾,而不能把TEMP這個目錄都乾掉了;Windows里通常也有一個TEMP文件,是系統默認的臨時文件的放置地方,也不建議連目錄都刪除了,定期清空裡面的垃圾即可。
關於Linux系統清理/tmp/資料夾的原理
我們知道,在Linux系統中/tmp資料夾裡面的檔案會被清空,至於多長時間被清空,如何清空的,可能大家知識的就不多了。
在RHEL\CentOS\Fedora\系統中(本次實驗是在RHEL6中進行的)
先來看看tmpwatch這個指令,他的作用就是刪除一段時間內不使用的檔案(removes files which haven't been accessed for a period of time)。具體的用法就不多說了,有興趣的自行研究。我們主要看看和這個命令相關的計劃任務文件。
他是/etc/cron.daily/tmpwatch,我們可以看一下這個檔案裡面的內容
#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
-x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
-X '/tmp/hsperfdata_*' 10d /tmp
#/usr/sbin/tmpwatch "$flags " 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d "$d" ]; then
/usr/sbin/tmpwatch "$flags" -f 30d "$d"
fi
done
這個腳本大家仔細分析一下就明白了,第一行相當於一個標記(參數),第二行就是針對/tmp目錄裡面排除的目錄,第三行,這是對這個/tmp目錄的清理,下面的是針對其他目錄的清理,就不說了。
我們就來看/usr/sbin/tmpwatch "$flags" 30d /var/tmp這一行,關鍵的是這個30d,就是30天的意思,這個就決定了30天清理/tmp下不存取的檔案。如果說,你想一天一清理的話,就把這個30d改成1d。
但有個問題需要注意,如果你設定更短的時間來清理的話,比如說是30分鐘、10秒等等,你可以在這個檔案中設置,但你會發現重新電腦,他不清理/tmp資料夾裡面的內容,這是為什麼呢?這就是tmpwatch他所在的位置決定的,他的上層目錄是/etc/cron.daily/,而這個目錄是第天執行一次計劃任務,所以說,你設定了比一天更短的時間,他就不起作用了。這下明白了吧。
所以結論是:在RHEL6中,系統自動清理/tmp資料夾的預設時限是30天
在Debian\Ubuntu系統中(Ubuntu10.10為實驗環境)
在Ubuntu系統中,在/tmp資料夾裡面的內容,每次開機都會被清空,如果不想讓他自動清理的話,只需要更改rcS檔案中的TMPTIME的值。
我們看如何修改
sudo vi /etc/default/rcS
把
TMPTIME=0
修改成
TMPTIME=-1或是無限大
改成這樣的話,系統在重新啟動的時候就不會清理你的/tmp目錄了。
依些類推,如果說要限制多少時間來更改的話,就可以改成相應的數字(本人沒有測試,我是這麼理解的)
所以結論是:在Ubuntu中,系統自動清理/tmp資料夾的時限預設每次啟動
以上是/tmp/資料夾在Linux系統中的清理原理及tmp檔案的作用的詳細內容。更多資訊請關注PHP中文網其他相關文章!