find#
Linux 的 find 套件主要由 GNU 專案維護,屬於 GNU findutils 工具集的一部分。
Introduction#
find 指令 是 Linux 中用於在目錄結構中遞迴搜尋檔案和資料夾的工具。它可依照檔名、類型、大小、修改時間、權限等多種條件進行高效篩選,並能對搜尋結果執行指定動作,如刪除或修改權限。這使得 find 成為系統管理和檔案操作中非常重要且靈活的指令。
Install#
find 指令通常預設已經安裝,屬於 findutils 套件的一部分。如果系統中沒有安裝,可以透過以下命令來安裝:
$ sudo apt install findutilsOperate#
| 範例指令 | 功能說明 |
|---|---|
| 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: