Home >> Blog >> linux find 的使用方式

放下手中的SEO搜尋引擎優化案子,讓我們來聊聊linux find 的使用方式。

linux find 的使用方式

使用正確的參數,FIND 命令是一種在系統上定位資料的強大而靈活的方法。

如何在 Linux 中使用 FIND

在最近的 Opensource.com 文章中,Lewis Cowles 介紹了該find命令。

find是日常工具箱中功能更強大、更靈活的命令行程序之一,因此值得多花一點時間在上面。

至少,find走一條路來找東西。例如:

find /

將查找(並列印)系統上的每個文件。而且由於一切都是文件,因此您將獲得大量輸出進行排序。這可能無法幫助您找到所需的內容。您可以更改路徑參數以縮小範圍,但它仍然沒有比使用ls命令更有幫助。因此,您需要考慮要查找的內容。

也許您想在您的主目錄中找到所有的 JPEG 文件。該-name參數允許您將結果限制為與給定模式匹配的文件。

find ~ -name '*jpg'

可是等等!如果其中一些具有大寫擴展名怎麼辦?-iname類似於-name,但不區分大小寫。

find ~ -iname '*jpg'

偉大的!但是 8.3 的名稱方案是 1985 年的。有些圖片可能有 .jpeg 擴展名。幸運的是,我們可以將模式與由 表示的“或”組合起來-o。

find ~ ( -iname 'jpeg' -o -iname 'jpg' )

我們越來越近了。但是,如果您有一些以 jpg 結尾的目錄怎麼辦?(為什麼你命名一個目錄bucketofjpg 而不是pictures 我超出了我的理解。)我們可以使用-type參數修改我們的命令以僅查找文件。

find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f

或者,也許您想找到那些名字奇怪的目錄,以便以後重命名它們:

find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type d

事實證明,您最近拍攝了很多照片,所以讓我們將範圍縮小到上週更改的文件。

find ~ \( -iname '*jpeg' -o -iname '*jpg' \) -type f -mtime -7

您可以根據文件狀態更改時間 ( ctime)、修改時間 ( mtime) 或訪問時間 ( atime) 進行時間過濾。這些是以天為單位的,因此如果您想要更細粒度的控制,您可以在幾分鐘內表達它(cmin分別為mmin、 和amin)。除非您確切知道您想要的時間,否則您可能會在數字前加上+(大於)或–(小於)。

但也許你不關心你的照片。也許您的磁盤空間不足,因此您想在目錄中找到所有巨大的(讓我們將其定義為“大於 1 GB”)文件log:

find /var/log -size +1G

或者,也許您想在以下位置找到 bcotton 擁有的所有文件/data:

find /data -owner bcotton

您還可以根據權限查找文件。也許你想在你的主目錄中找到所有世界可讀的文件,以確保你沒有過度共享。

find ~ -perm -o=r

這篇文章只觸及了find可以做的事情的表面。將測試與布爾邏輯相結合可以為您提供難以置信的靈活性來準確找到您正在尋找的文件。-exec使用or之類的參數-delete,您可以find對它...找到的內容採取行動。有什麼喜歡的find表達方式嗎?在評論中分享它們!