快速指南,介紹用於在文件系統上查找文件和文件夾的 find 命令。

find 命令用於查找與特定搜索模式匹配的文件或文件夾。它可以遞歸搜索。

讓我們通過例子來學習它。

查找當前目錄下具有 .js 擴展名的所有文件,並打印每個匹配文件的相對路徑:

find . -name '*.js'

重要提示:使用引號引起來處理特殊字符,例如 *,以避免shell解釋它們。

查找當前目錄下名稱為 “src” 的目錄:

find . -type d -name src

使用 -type f 只搜索文件,使用 -type l 只搜索符號鏈接。

-name 區分大小寫,使用 -iname 執行不區分大小寫的搜索。

你可以在多個根目錄下進行搜索:

find folder1 folder2 -name filename.txt

查找當前目錄下名稱為 “node_modules” 或 ‘public’ 的目錄:

find . -type d -name node_modules -or -name public

你還可以使用 -not -path 排除某個路徑:

find . -type d -name '*.md' -not -path 'node_modules/*'

你可以搜索具有超過 100 個字符(字節)的文件:

find . -type f -size +100c

搜索大小大於 100KB 但小於 1MB 的文件:

find . -type f -size +100k -size -1M

搜索 3 天前編輯的文件:

find . -type f -mtime +3

搜索最近 24 小時編輯的文件:

find . -type f -mtime -1

你可以通過添加 -delete 選項刪除所有匹配搜索的文件。這將刪除最近 24 小時內編輯的所有文件:

find . -type f -mtime -1 -delete

你可以對搜索結果執行一個命令。在此例中,我們運行 cat 命令打印文件內容:

find . -type f -exec cat {} \;

注意結尾的 ;。{} 將在執行時替換為文件名。