find 是日常工具箱中功能更強(qiáng)大、更靈活的命令行工具之一,因此值得花費(fèi)更多的時(shí)間。
最簡單的,find 跟上路徑尋找一些東西。例如:
find /
它將找到(并打印出)系統(tǒng)中的每個(gè)文件。而且由于一切都是文件,你會得到很多需要整理的輸出。這可能不能幫助你找到你要找的東西。你可以改變路徑參數(shù)來縮小范圍,但它不會比使用 ls 命令更有幫助。所以你需要考慮你想要找的東西。
也許你想在主目錄中找到所有的 JPEG 文件。 -name 參數(shù)允許你將結(jié)果限制為與給定模式匹配的文件。
find ~ -name'*jpg'
可是等等!如果它們中的一些是大寫的擴(kuò)展名會怎么樣?-iname 就像 -name,但是不區(qū)分大小寫。
find ~ -iname'*jpg'
很好!但是 8.3 名稱方案是如此的老。一些圖片可能是 .jpeg 擴(kuò)展名。幸運(yùn)的是,我們可以將模式用“或”(表示為 -o)來組合。
find ~ ( -iname'jpeg' -o -iname'jpg')
我們正在接近目標(biāo)。但是如果你有一些以 jpg 結(jié)尾的目錄呢? (為什么你要命名一個(gè) bucketofjpg 而不是 pictures 的目錄就超出了本文的范圍。)我們使用 -type 參數(shù)修改我們的命令來查找文件。
find ~ \( -iname'*jpeg' -o -iname'*jpg'\) -typef
或者,也許你想找到那些命名奇怪的目錄,以便稍后重命名它們:
find ~ \( -iname'*jpeg' -o -iname'*jpg'\) -typed
你最近拍了很多照片,所以讓我們把它縮小到上周更改的文件。
find ~ \( -iname'*jpeg' -o -iname'*jpg'\) -typef -mtime -7
你可以根據(jù)文件狀態(tài)更改時(shí)間 (ctime)、修改時(shí)間 (mtime) 或訪問時(shí)間 (atime) 來執(zhí)行時(shí)間過濾。 這些是在幾天內(nèi),所以如果你想要更細(xì)粒度的控制,你可以表示為在幾分鐘內(nèi)(分別是 cmin、mmin 和 amin)。 除非你確切地知道你想要的時(shí)間,否則你可能會在 + (大于)或 - (小于)的后面加上數(shù)字。
但也許你不關(guān)心你的照片。也許你的磁盤空間不夠用,所以你想在 log 目錄下找到所有巨大的(讓我們定義為“大于 1GB”)文件:
find /var/log -size +1G
或者,也許你想在 /data 中找到 bcotton 擁有的所有文件:
find /data -owner bcotton
你還可以根據(jù)權(quán)限查找文件。也許你想在你的主目錄中找到對所有人可讀的文件,以確保你不會過度分享。
find ~ -perm -o=r
這篇文章只說了 find 能做什么的表面。將測試條件與布爾邏輯相結(jié)合可以為你提供難以置信的靈活性,以便準(zhǔn)確找到要查找的文件。并且像 -exec 或 -delete 這樣的參數(shù),你可以讓 find 對它發(fā)現(xiàn)的內(nèi)容采取行動。
-
Linux
+關(guān)注
關(guān)注
87文章
11304瀏覽量
209521 -
Find
+關(guān)注
關(guān)注
0文章
54瀏覽量
11652
原文標(biāo)題:如何在 Linux 中使用 find
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論