快速指南,介紹用於在文件系統上查找文件和文件夾的 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 {} \;
注意結尾的 ;。{} 將在執行時替換為文件名。