Unix 下使用 Find 命令查詢需要清理的檔案
有一個問題幾乎困擾著所有的檔案系統 — 包括 Unix 和其他的 — 那就是檔案的不斷積累。幾乎沒有人願意花時間清理掉他們不再使用的檔案和整理檔案系統,結果,檔案變得很混亂,很難找到有用的東西,要使它們執行良好、維護備份、易於管理,這將是一種持久的挑戰。
Credit: Sandra H-S
我見過的一種解決問題的方法是建議使用者將所有的資料碎屑建立一個檔案集合的總結報告或”概況”,來報告諸如所有的檔案數量;最老的,最新的,最大的檔案;並統計誰擁有這些檔案等資料。如果有人看到五年前的一個包含五十萬個檔案的資料夾,他們可能會去刪除哪些檔案 — 或者,至少會歸檔和壓縮。主要問題是太大的資料夾會使人擔心誤刪一些重要的東西。如果有一個描述資料夾的方法能幫助顯示檔案的性質,那麼你就可以去清理它了。
當我準備做 Unix 檔案系統的總結報告時,幾個有用的 Unix 命令能提供一些非常有用的統計資訊。要計算目錄中的檔案數,你可以使用這樣一個 find 命令。
$ find . -type f | wc -l 187534
雖然查詢最老的和最新的檔案是比較複雜,但還是相當方便的。在下面的命令,我們使用 find 命令再次查詢檔案,以檔案時間排序並按年-月-日的格式顯示,在列表頂部的顯然是最老的。
在第二個命令,我們做同樣的,但列印的是最後一行,這是最新的。
$ find -type f -printf '%T+ %p/n' | sort | head -n 1 2006-02-03+02:40:33 ./skel/.xemacs/init.el $ find -type f -printf '%T+ %p/n' | sort | tail -n 1 2015-07-19+14:20:16 ./.bash_history
printf 命令輸出 %T(檔案日期和時間)和 %P(帶路徑的檔名)引數。
如果我們在查詢家目錄時,無疑會發現,history 檔案(如 .bash_history)是最新的,這並沒有什麼用。你可以通過 “un-grepping” 來忽略這些檔案,也可以忽略以.開頭的檔案,如下圖所示的。
$ find -type f -printf '%T+ %p/n' | grep -v "/.//." | sort | tail -n 1 2015-07-19+13:02:12 ./isPrime
尋找最大的檔案使用 %s(大小)引數,包括檔名(%f),因為這就是我們想要在報告中顯示的。
$ find -type f -printf '%s %f /n' | sort -n | uniq | tail -1 20183040 project.org.tar
統計檔案的所有者,使用%u(所有者)
$ find -type f -printf '%u /n' | grep -v "/.//." | sort | uniq -c 180034 shs 7500 jdoe
如果檔案系統能記錄上次的訪問日期,也將是非常有用的,可以用來看該檔案有沒有被訪問過,比方說,兩年之內沒訪問過。這將使你能明確分辨這些檔案的價值。這個最後訪問(%a)引數這樣使用:
$ find -type f -printf '%a+ %p/n' | sort | head -n 1 Fri Dec 15 03:00:30 2006+ ./statreport
當然,如果大多數最近訪問的檔案也是在很久之前的,這看起來你需要處理更多檔案了。
$ find -type f -printf '%a+ %p/n' | sort | tail -n 1 Wed Nov 26 03:00:27 2007+ ./my-notes
要想層次分明,可以為一個檔案系統或大目錄建立一個總結報告,顯示這些檔案的日期範圍、最大的檔案、檔案所有者們、最老的檔案和最新訪問時間,可以幫助檔案擁有者判斷當前有哪些資料夾是重要的哪些該清理了。
來源:https://linux.cn/article-5973-1.html
相關文章
- Linux/Unix 檔案查詢命令 find, xargs 詳述Linux
- linux下的find檔案查詢命令與grep檔案內容查詢命令Linux
- Unix 檔案查詢命令
- linux 查詢檔案命令 findLinux
- linux下find(檔案查詢)命令的用法總結Linux
- python檔案查詢之find命令Python
- find 查詢檔案
- Find命令查詢最近幾天修改的檔案
- linux下使用find xargs grep查詢檔案及檔案內容Linux
- 命令列技巧:使用 find 和 xargs 查詢和處理檔案命令列
- Linux檔案查詢命令find,xargs詳述Linux
- linux命令之----find用於指定目錄下查詢檔案Linux
- 除了find命令,還有這麼多檔案查詢命令!
- Linux檔案查詢命令find,xargs詳述(轉)Linux
- Linux檔案查詢命令find詳述(part2)Linux
- Linux檔案查詢命令find詳述(part1)Linux
- 檔案查詢命令
- 查詢指定的檔案:find、locate、which、whereis
- 如何使用find和xargs查詢和處理檔案
- 如何用 grep 命令在 UNIX 中根據檔案內容查詢檔案
- Linux基礎:檔案查詢findLinux
- Linux常用命令之檔案查詢which、find、locate命令講解Linux
- find 按檔案修改時間查詢檔案及find空資料夾
- unix 檔案清理一例
- 需要注意的unix命令使用
- linux下find和cp來實現檔案的查詢和複製Linux
- linux/unix find命令Linux
- Linux下的五個查詢命令:grep、find、locate、whereis、whichLinux
- linux 命令與檔案的查詢Linux
- centos磁碟滿時查詢大檔案清理掉CentOS
- 檔案內容查詢命令(轉)
- linux下的檔案的查詢Linux
- Linux 某個目錄下查詢檔案大小並排序(du),特定檔案刪除(find)Linux排序
- Linux 檔案、內容查詢(遞迴) ,grep ,findLinux遞迴
- 使用 mlocate 查詢檔案
- [轉]UNIX find命令實踐
- 陣列使用find查詢用法陣列
- linux中查詢find命令的複雜用法Linux