© Profit_Image/Shutterstock.com

在使用 Linux 或任何其他類 Unix 操作系統時,您將最常使用“查找”命令。它的作用是不言自明的;它只是找到東西。但是你不知道這個基本命令可以通過多種方式找到你需要的東西。

查找命令可以根據文件名、權限、用戶、類型、大小和日期等條件搜索文件。了解如何在不同條件下使用 Linux 中的 find 命令可以幫助您快速檢索文件。有些命令更高級,因此您可能不會經常使用它們。如果您是初學者,您可以通過首先了解 find 命令的簡單示例來逐步提高。

查找Linux 語法中的命令

下面是 find Linux 中的命令的一般語法:

$ find [從哪裡開始搜索] [-options] [要查找的內容]

在上面的語法中,[-options] 是查找的條件搜索,它本質上定義了命令並告訴操作系統要做什麼。

以下是您將使用的一些選項:

-exec CMD-ok CMD-inum N-links N-name demo-newer file-perm octal-print-empty-size +N/-N-user name

如何在 Linux 示例中使用 Find 命令

因此,在 Linux 中有數十種不同的方法可以使用 find 命令來搜索文件。您還可以使用相同的查找命令,不僅可以定位文件,還可以執行其他操作,例如刪除文件。

為了幫助您更好地理解此類命令在 Linux 中的工作方式,這裡有幾個示例,從基礎到高級。

示例 1:使用文件名搜索文件

此命令非常簡單,因為它使用文件名在您定義的目錄中搜索文件。如果您知道文件名及其目錄,則可以使用此命令輕鬆將其拉出。

返回“sample.txt”文件

©”TNGD”.com

此命令將在主目錄中查找名為“sample.txt”的文件。

示例 2:搜索具有相同擴展名的所有文件

假設您不記得文件的名稱,但記得類型。您可以使用此命令檢索具有特定擴展名或類型的所有文件。

返回主目錄中的.txt 文件。

©”TNGD”.com

這將返回主目錄中的所有.txt 文件類型。

示例3:在當前目錄中搜索具有該名稱的文件

如果要查找的文件在當前目錄中,則無需提及命令中的目錄。它是這樣的:

返回當前目錄中的“sample.txt”文件。

©”TNGD”.com

這將在當前目錄中搜索名為“sample.txt”的文件目錄。

示例4:搜索目錄

在Linux中也可以使用find命令來搜索目錄。以下是用於搜索名為 HC 的目錄的 find 命令示例。

移至 HC 目錄。

©”TNGD”.com

此命令會將您帶到名為 HC 的目錄。

示例 5:使用名稱搜索文件,但不區分大小寫

Linux 命令區分大小寫,因此您必須小心文件名和目錄名。但是有一個解決方法 find 命令可以根據名稱查找文件,無論大小寫如何。同樣,如果您不確定文件名的大小寫,這會很有幫助。

返回 sample.txt 或 Sample.txt 文件。

©”TNGD”.com

此命令將返回“sample.txt”,即使它的實際名稱是“Sample.txt”。

示例 6:按類型搜索

在目錄和文件可能具有相同名稱的情況下,您可以通過指定要搜索的對像類型來使搜索準確尋找。例如,您可以指定要搜索帶有-type 選項的文件。

Return sample.txt file

©”TNGD”.com

此命令將僅返回名為“sample”的文本文件。

示例 7:在文件中搜索文本

假設您需要文件的內容,例如文本文件中的字符串。您可以使用 find 直接檢索文本。還可以調整 find 命令以在一個或多個文件中搜索文本。您需要提供要查找的字符串。

返回.txt 文件中包含單詞“”TNGD””的所有行。

©”TNGD”.com

此命令將打印包含字符串“”TNGD””的文本行所有目錄中的所有.txt 文件。

示例 8:搜索所有空文件

如果您要清理目錄,您需要刪除所有空文件。但是你怎麼知道哪些文件是空的呢?您可以使用 find 命令查找空文件。

返回主目錄中的空文件。

©”TNGD”.com

此命令將返回主目錄中的所有空文件.

示例9:搜索所有空目錄

和空文件一樣,在Linux中也可以使用find命令來搜索空目錄。

返回當前目錄中的所有空目錄和子目錄。

©”TNGD”.com

此命令將返回所有空目錄或子目錄。

示例 10:搜索所有隱藏文件

查找命令對於查找目錄中的隱藏文件也很有用。該命令非常簡單。

返回主目錄中的所有隱藏文件。

©”TNGD”.com

此命令返回主目錄中的所有隱藏文件。

示例 11:搜索具有特定權限的文件

當與多個用戶一起使用 Linux 操作系統時,您可能希望確保您的文件具有正確的權限,這樣不是每個人都可以訪問他們。您可以使用 find 命令按給定的權限過濾搜索。例如,你想在當前目錄中查找權限為 664 的文件。你可以這樣做:

返回主目錄中具有 664 權限的所有文件。

©”TNGD”.com

此命令將返回主目錄中權限設置為 664 的所有文件。

示例 12:搜索沒有特定權限的文件

正如您可以使用find 命令可以查找具有特定權限的文件,也可以查找沒有權限的文件。下面是查找權限不是 664 的文件的示例:

返回沒有 664 權限的文件。

©”TNGD”.com

這將只返回權限不包括的文件664.

示例 13:搜索所有 SUID 文件

設置所有者用戶 ID 是 Linux 中可執行文件的權限位。備用用戶可以使用與所有者相同的權限運行此文件。這是找到所有 SUID 文件的方法。

返回所有 SUID 文件。

©”TNGD”.com

此命令返回所有 SUID 文件。

示例14:搜索所有SGID文件

SGID類似於SUID 但對於團體。以下是搜索所有 SGID 文件的方法。

返回所有 SGID 文件

©”TNGD”.com

此命令返回所有 SGID 文件。

示例 15:搜索所有可執行文件

正在尋找可執行文件但不知道名稱?您還可以使用-perm 選項搜索當前或所有目錄中的所有可執行文件。

返回所有可執行文件。

©”TNGD”.com

此命令將返回主目錄中的可執行文件。

例16:查找只讀文件

如果要查找當前目錄或任意目錄下的只讀文件,可以使用find命令。這有助於確保某些重要文件具有隻讀權限。這是對所有目錄執行此操作的方法。

返回所有隻讀文件。

©”TNGD”.com

這將返回主目錄中的只讀文件。當然,您也可以指定目錄和/或文件類型。

實例17:查找並刪除一個文件

如果要刪除一個文件,可以用find命令來完成。這是此類命令的一個示例:

搜索並刪除“sample.txt”文件。

©”TNGD”.com

示例18:搜索並刪除多個文件

您還可以使用帶有一些調整的查找命令刪除兩個或多個文件。它應該是這樣的。

搜索並刪除所有.txt 文件。

©”TNGD”.com

此命令將刪除主目錄中的所有.txt 文件。您還可以指定另一個目錄或使用所有目錄。

示例 19:根據用戶搜索文件

選項“-user”允許您在操作系統上搜索特定用戶的文件。這可用於進一步縮小搜索範圍並確保僅返回正確的文件。如果您想為特定用戶查找單個文件,這裡有一個命令示例:

返回用戶“historycom”的“sample.txt”文件。

©”TNGD”.com

Linux 中的這個查找命令將返回這個特定用戶的特定文件。

示例 20:搜索用戶的所有文件

也許您想檢查哪些文件屬於某個用戶。您可以使用類似的查找命令搜索特定用戶的所有文件。

返回用戶“historycom”的所有文件。

©”TNGD”.com

在上面的命令中,“historycom”是用戶名。這將返回該特定用戶的所有文件。

示例21:為用戶搜索特定文件

您可以使用find 命令只搜索特定類型的用戶文件。這是一個示例:

返回用戶“historycom”的所有.txt文件。

©”TNGD”.com

此命令將返回用戶historycom的所有.txt文件。

示例22:搜索一個組的所有文件

由於Linux也有組,所以可以共享文件。檢查哪些文件屬於特定組的一種方法是搜索單個組的文件。這是它的樣子:

返回組“historycom”的所有文件。

©”TNGD”.com

在上面的命令中,“historycom”是組的名稱。此命令將返回此特定組的所有文件。

示例 23:搜索在過去一小時內更改或修改的所有文件

如果出於任何原因,您想檢查在過去一小時內修改或更改了哪些文件(例如例如,在受到攻擊的情況下),您可以使用 Linux 中的 find 命令快速搜索最近更改或修改的文件。更改和修改文件的命令是不同的。

這是一個查找過去一小時內更改的所有文件的命令示例:

返回過去 60 分鐘內更改的所有文件。

©”TNGD”.com

下面是一個查找過去一小時內修改過的所有文件的命令示例:

返回最近 60 分鐘內修改的所有文件。

©”TNGD”.com

示例 24:搜索最近一小時內訪問的所有文件

另一個常用的查找命令是搜索在特定時間範圍內訪問的文件。您可以通過以下方式找到過去一小時內訪問過的所有文件:

返回過去 60 分鐘內訪問過的所有文件。

©”TNGD”.com

這將為您提供所有訪問過的文件在最後 60 分鐘內。您也可以指定一個目錄。

示例25:搜索最近10天內訪問過的所有文件

與上述命令一樣,您也可以按訪問天數搜索文件。下面是這樣的命令:

返回最近 10 天訪問的所有文件。

©”TNGD”.com

這將返回最近 10 天訪問的所有文件。

示例 26:搜索最近 10 天內修改或更改的所有文件

如果您在最近更改或修改了一個文件但忘記了它是哪個文件,有一個簡單的方法find 命令來定位這樣的文件。查找過去修改過和更改過的文件的查找命令是類似的。這是修改文件的命令:

返回最近 10 天內修改過的所有文件。

©”TNGD”.com

這是更改文件的命令:

返回在最近 10 天。

©”TNGD”.com

示例 27:搜索在某個時間範圍內訪問的所有文件

如果要搜索在​​特定時間訪問的文件例如,在最近 20 到 10 天內,您可以指定 find 命令的持續時間。這是一個示例:

返回所有在 10 天前但少於 20 天前訪問過的文件。

©”TNGD”.com

這將返回在 10 天前訪問過的所有文件但不到 20 天回來。

示例 28:按大小搜索文件

假設您要在目錄中騰出空間並希望刪除任何大文件。您還可以按大小搜索文件。例如,您希望所有文件大小為 100MB;這是您將使用的命令:

返回所有 100MB 大小的文件。

©”TNGD”.com

這將從所有目錄中返回所有大小為 100MB 的文件。

示例29:按大小範圍搜索文件

類似於特定的文件大小,可以使用帶大小範圍的查找命令。

返回大小在 50 到 100MB 之間的所有文件。

©”TNGD”.com

此命令將返回大小在 50MB 到 100MB 之間的所有文件。

示例30:查找並刪除特定大小的文件

您可以查找並刪除特定大小的所有文件。以下是此類命令的示例:

查找並刪除所有大於 50MB 的.txt 文件。

©”TNGD”.com

這將從中刪除所有 50MB 大小的.txt 文件所有目錄。請小心使用此命令,因為您不想刪除任何您不想刪除的文件。所以這個命令最好指定文件名。

總結

現在您知道了在 Linux 中使用 find 命令搜索文件或文件夾的多種方法。但這還不是全部;您還可以做其他事情,例如指定您需要的文件類型。大多數命令都很簡單,您可能每天都會用到它們。

雖然 find 命令的主要工作是搜索文件,但您還可以在同一命令中包括其他提示,例如刪除文件。確保在使用 find 命令刪除文件時仔細定義路徑,以免意外刪除其他文件。

How to Use Find Command in Linux with Examples FAQs(常見問題解答)

Linux中的find命令有什麼用?

Linux中的find命令是搜索目錄和文件。當您有數百或數千個文件時,它會派上用場。您可以為 find 命令定義參數,以進一步縮小搜索範圍並獲得所需的確切文件。

如何在 Linux 中查找和列出文件?

您可以使用 find 命令查找特定或所有文件。同樣,您可以使用 ls 命令列出當前目錄或另一個指定目錄中的所有文件。

可以使用find命令來查找隱藏文件嗎?

find命令可以用來查找當前目錄或其他目錄中的隱藏文件目錄。您還可以使用 ls 命令查找隱藏文件。

如何在Linux中查找所有目錄中的文件?

使用帶斜線的find命令可以在所有目錄中查找文件(/),它會在整個系統中搜索您想要的特定文件。您可以在命令中指定文件名和/或其他屬性,如大小或訪問日期。

如何在Unix中搜索文件?

在Unix操作系統中可以使用find命令來搜索一個或多個文件。此命令啟動文件層次結構搜索,以查找滿足命令條件(例如名稱或文件類型)的文件。

By Henry Taylor

我是後端開發人員。 你們中有些人可能在開發者大會上見過我。 最近我一直在做一個開源項目。