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