find#

Linux 的 find 套件主要由 GNU 專案維護,屬於 GNU findutils 工具集的一部分。


Introduction#

find 指令 是 Linux 中用於在目錄結構中遞迴搜尋檔案和資料夾的工具。它可依照檔名、類型、大小、修改時間、權限等多種條件進行高效篩選,並能對搜尋結果執行指定動作,如刪除或修改權限。這使得 find 成為系統管理和檔案操作中非常重要且靈活的指令。


Install#

find 指令通常預設已經安裝,屬於 findutils 套件的一部分。如果系統中沒有安裝,可以透過以下命令來安裝:

$ sudo apt install findutils

Operate#

範例指令功能說明
find . -name “*.txt”在當前目錄及子目錄搜尋副檔名為 .txt 的檔案
find . -iname “*.txt”忽略大小寫搜尋 .txt 檔
find /tmp -type f -name “*.log”在 /tmp 目錄尋找所有 .log 檔(type f:檔案)
find /var -type d -name “cache”在 /var 目錄尋找資料夾名稱為 cache(type d:目錄)
find /var -type l -lname “*.conf”尋找 /var 資料夾下指向副檔名為 .conf 檔的符號連結
find /home -user username找出 /home 下屬於 username 使用者的檔案
find . -size +10M找出檔案大於 10MB
find . -mtime -7找出最近七天內有修改的檔案
find . -empty找出空檔案或空資料夾
find . -perm 644找出權限為 644 的檔案
find /tmp -type f -name “*.log” -exec rm -f {} \;找到 /tmp 下所有 .log 檔並刪除({} 代表檔案,; 結束命令)

Referenc#

Official docs:

findutils