
/private/var/folders/*
想要在 OS X 啟動時清理,透過創建一個launchd
條目。 (AFAIK,OS X 不支援rc.conf
rc.d
- 一切都必須透過為launchd
)建立一個條目來完成
這是一個相似的 問題。不幸的是,接受的答案是錯誤的,因為這裡有守護進程(特別是依賴調用的守護進程mktemp
)可以運行並且仍然打開文件 - 所以,你無法刪除任何時候/private/var/folders/*
. (正確地說,建議的“重啟後”在一定程度上解決了問題 - 但並非完全如此。)
所以,問題是: 可以安全地刪除其中的文件/private/var/folders/*
在啟動時?
(我可以想像一些需要重新啟動的安裝腳本(.kext 安裝等)可以使用臨時資料夾來存儲一些重新啟動後的安裝資料- 並且不希望在某些關鍵安裝後通過刪除必要的文件來鎖定我的系統:) -這純粹是我的猜測- 因此詢問)。
- 還是唯一安全的方法是刪除超過 X 天的檔案?
- 或另一個想法安全的但自動的清理臨時檔案/目錄,
/private/var/folders/*
因為它不斷增長......;(
答案1
長話短說:/var/folders
包含每個使用者快取和臨時檔案的資料夾。您可以存取自己的資料夾,但不能存取其他使用者的資料夾。刪除目前未使用的檔案應該是安全的,但刪除正在使用的檔案可能會導致問題。如果您想清除它們,您應該隨後重新啟動,以盡量減少出現問題的可能性。
如果您什麼都不做,系統進程將定期清理這些資料夾中三天未存取的文件,因此您無需執行任何操作,除非您的儲存空間非常低。
細節
/var/folders
主要包含臨時文件和快取文件,按使用者儲存。如果你看一下 的根/var/folders
,你不會看到太多:
$ ls -l /var/folders
total 0
drwxr-xr-x 3 root wheel 102 Mar 2 2014 43/
drwxr-xr-x 3 root wheel 102 Mar 2 2014 4c/
drwxr-xr-x 3 root wheel 102 Mar 2 2014 c3/
...
但如果您向下看一層,您會發現其中包含每個使用者的資料夾。通常,每個頂級(兩個字元)資料夾包含一個使用者資料夾,但“zz”資料夾包含許多系統使用者。例如(出於隱私目的更改使用者名稱):
$ ls -l /var/folders/*
/var/folders/43:
total 0
drwxr-xr-x 6 user1 staff 204 Oct 3 2016 3lsw0k6d7vqbywvsf226nkqc0000gs/
/var/folders/4c:
total 0
drwxr-xr-x 6 user2 staff 204 Jul 15 2016 yc9pgt3j5y18vr29jcgbbyb4000101/
/var/folders/c3:
total 0
drwxr-xr-x 6 user3 staff 204 Aug 16 2016 wv6q5xlx1flgtwcs0rjlkbd4000102/
/var/folders/rp:
total 0
drwxr-xr-x 4 admin staff 136 Jul 3 2016 qjg8tsk964scvw2510_n6yz00000gt/
/var/folders/yx:
total 0
drwxr-xr-x 4 macports macports 136 Jul 3 2016 m3d21nm91wnd4c0k2yjk57200000gn/
/var/folders/zz:
total 0
drwxr-xr-x 6 root wheel 204 Jul 3 2016 zyxvpxvq6csfxvn_n0000000000000/
drwxr-xr-x 3 _networkd _networkd 102 Jul 3 2016 zyxvpxvq6csfxvn_n000003000000r/
drwxr-xr-x 3 _lp _lp 102 Jul 3 2016 zyxvpxvq6csfxvn_n000003800000t/
...
在每一個資料夾中,您都會發現一些神奇的資料夾:
$ ls -l /var/folders/4c/yc9pgt3j5y18vr29jcgbbyb4000101/
total 0
drwxr-xr-x 6 user2 staff 204 Sep 1 10:31 0/
drwx------ 53 user2 staff 1802 Jul 28 18:44 C/
drwxr-xr-x 2 user2 staff 68 Jul 3 2016 Cleanup At Startup/
drwx------ 83 user2 staff 2822 Sep 1 10:53 T/
「C
」資料夾是該使用者的快取 - 包含(在 MacOS X 10.5 之前)本應放入的內容/Library/Caches
。 「T
」資料夾是該使用者的臨時檔案 - 代替/tmp
或/var/tmp
。
我不確定其他兩個資料夾。 Cleanup At Startup
是空的。我懷疑它的目的是儲存重新啟動時所需的文件,但應該在之後清除(例如係統更新程式使用的臨時文件),因此在重新啟動(甚至登出/登入)後將被刪除)。
「0
」資料夾包含一些與桌面相關的資料庫,可能旨在充當這些服務的快取:
$ ls -l /var/folders/4c/yc9pgt3j5y18vr29jcgbbyb4000101/0
total 14104
-rw------- 1 user2 staff 7221248 Sep 1 10:31 com.apple.LaunchServices-1341025.csstore
drwx------ 3 user2 staff 102 Jul 3 2016 com.apple.dock.launchpad/
drwx------ 3 user2 staff 102 Jul 3 2016 com.apple.notificationcenter/
drwx------ 3 user2 staff 102 Sep 1 10:05 com.apple.pluginkit/
因此,總而言之,每個用戶和虛擬用戶在/var/folders
.您將可以存取您自己的用戶,但不能存取其他用戶(除非您sudo
以 root 身分存取它們)。它們主要包含快取和臨時檔案。因此,刪除內容可能安全也可能不安全,具體取決於檔案是否正在使用。
刪除相應進程仍在運行的檔案可能會導致該進程行為異常或崩潰。刪除相應進程未運行的檔案應該是安全的,但在進程重新啟動時可能會導致效能問題(因為它可能會重新生成快取和臨時檔案。)
似乎每晚凌晨 3:35 都會運行一個後台進程來清理這些資料夾。我不知道清理的具體性質(似乎沒有很好的記錄),但我讀到的內容似乎表明它將刪除任何三天未訪問的文件。
答案2
必要時通常/var/folders
應由系統進行適當的淨化和調節。在不知道刪除了什麼的情況下從那裡刪除一些東西可能會導致一些意想不到的和非常不希望的結果。
如果您正在談論在重新啟動時手動清理此資料夾,我認為它應該是安全的,因為它不太可能被某些正在運行的程式使用(只是上次的一些殘留物)。不過,您是對的,為了以防萬一,刪除 1 天前的檔案總是更安全。
我認為最好了解 OS X 如何清理該資料夾以及如何手動呼叫該資料夾,因此這將是一個更好的解決方案。
也可以看看:
答案3
就其價值而言(意味著決定自己的價值:-),在 Catalina (10.15) 上這樣做是危險的。升級到 Catalina 後,我在 Macbook Air 上執行了此操作。它不會重新啟動,並且從內部螢幕損壞的時間機器中恢復是多麼痛苦。
我的 Macbook Air 的螢幕也壞了(還有壞的鍵盤和壞的觸控板,但我離題了)。我很偏執,因為我用它來發展。所以我在網路上找到了另一個技巧。啟動時按住 Shift 鍵可使 Mac 進入「安全模式」。然後 Mac 啟動進入安全模式,「sudo du -d 1 -h /private」確認 44GB。再次重新啟動回到常規 Mac OS X 後,相同的指令顯示 3GB。
順便說一句,這不適用於普通鍵盤,我必須找到蘋果鍵盤。
定期這樣做會更安全,儘管會很痛苦。我嘗試了免費的清理程序,但沒有找到這些文件/資料夾。我寧願不花 30 - 80 美元買一個可能找不到它們的清潔工...