Linux-使用 Find 命令找到那些需要清理的文件
概述
有一個問題幾乎困擾著所有的文件系統 – 包括 Unix 和其他的 – 那就是文件的不斷積累。幾乎沒有人愿意花時間清理掉他們不再使用的文件和整理文件系統,結果,文件變得很混亂,很難找到有用的東西,要使它們運行良好、維護備份、易于管理,這將是一種持久的挑戰。
其中一種解決問題的方法是建議使用者將所有的數據碎屑創建一個文件集合的總結報告或”概況”,來報告諸如所有的文件數量;最老的,最新的,最大的文件;并統計誰擁有這些文件等數據
profiling-your-file-systems
常用命令
當我們準備做 Unix 文件系統的總結報告時,幾個有用的 Unix 命令能提供一些非常有用的統計信息。
計算目錄中的文件數
要計算目錄中的文件數,你可以使用這樣一個 find 命令。
xgj@/>find . -type f | wc -l 117203查找最老或者最新的文件
雖然查找最老的和最新的文件是比較復雜,但還是相當方便的。
在下面的命令,我們使用 find 命令在當前目錄及遞歸目錄再次查找文件,以文件時間排序并按年-月-日的格式顯示,在列表頂部的顯然是最老的。
最老的文件
xgj@/xgj>find -type f -printf '%T+ %p\n' | sort | head -n 1 2000-01-11+17:15:50.0000000000 ./tools/source/swig-1.3.31/Lib/guile/Makefile顯示多少個最老的文件,修改-n 的參數即可
最新的一個文件
xgj@/xgj> find -type f -printf '%T+ %p\n' | sort | tail -n 5 2017-01-11+18:02:19.0369273530 ./apche/log/ftp.logprintf 命令輸出 %T(文件日期和時間)和 %P(帶路徑的文件名)參數。
忽略以.開頭的文件
如果我們在查找家目錄時,無疑會發現,history 文件(如 .bash_history)是最新的,這并沒有什么用。你可以通過 “un-grepping” 來忽略這些文件,也可以忽略以.開頭的文件
xgj@/xgj>find -type f -printf '%T+ %p\n' | grep -v "\./\." | sort | tail -n 1尋找最大的文件使用 %s(大小)參數,包括文件名(%f )
xgj@/xgj>find -type f -printf '%s %f \n' | sort -n | uniq | tail -1 821749119 entel_export_bal.dat統計文件的所有者,使用%u(所有者)
xgj@/xgj>find -type f -printf '%u \n' | grep -v "\./\." | sort | uniq -c21237 xgj最后訪問(%a)參數
如果文件系統能記錄上次的訪問日期,也將是非常有用的,可以用來看該文件有沒有被訪問過,比方說,兩年之內沒訪問過。這將使你能明確分辨這些文件的價值。這個最后訪問(%a)參數這樣使用:
find -type f -printf '%a+ %p\n' | sort | head -n 1當然,如果大多數最近??訪問的文件也是在很久之前的,這看起來你需要處理更多文件了。
find -type f -printf '%a+ %p\n' | sort | tail -n 1要想層次分明,可以為一個文件系統或大目錄創建一個總結報告,顯示這些文件的日期范圍、最大的文件、文件所有者們、最老的文件和最新訪問時間,可以幫助文件擁有者判斷當前有哪些文件夾是重要的哪些該清理了。
總結
以上是生活随笔為你收集整理的Linux-使用 Find 命令找到那些需要清理的文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle-USERS表空间解读
- 下一篇: Linux-手动释放linux内存cac