find 路徑 選項 [動作]
| 選項 | 功能 | 範例 |
|---|---|---|
-name | 檔名比對 (支援萬用字元) | -name "*.log" |
-type | 檔案類型 | -type f (一般檔)、-type d (目錄)、-type l (符號連結) |
-size | 檔案大小 | -size +100M、-size -10k、-size 512c (bytes) |
-mtime | 修改時間 (天) | -mtime -7 (7天內)、-mtime +30 (30天前) |
-mmin | 修改時間 (分鐘) | -mmin -60 (1小時內) |
-user/-group | 擁有者/群組 | -user www |
-perm | 權限比對 | -perm 644 |
-path | 路徑比對 | -path "*/cache/*" |
| 參數 | 存取時間 | 狀態變更 | 內容修改 |
|---|---|---|---|
| 分鐘 | -amin | -cmin | -mmin |
| 天 (24小時) | -atime | -ctime | -mtime |
-print:輸出路徑 (預設)-exec cmd {} \;:對每個結果執行指令-ok cmd {} \;:互動確認後執行-delete:直接刪除 (謹慎使用)-printf "format":自訂輸出格式find /apps -path "/apps/bin" -prune -o -print
-prune 防止進入指定目錄,-o 代表邏輯 OR。
# 刪除 30 天前的 .log 檔案
find /var/log -name "*.log" -mtime +30 -print0 | xargs -0 rm -f
# 批次壓縮
find . -name "*.txt" -print0 | xargs -0 gzip
# 並行處理 (GNU xargs)
find . -name "*.jpg" -print0 | xargs -0 -P 4 -I {} convert {} -resize 50% {}
-print0 與 -0 處理含空白字元的檔名更安全。
find . \( -name "*.c" -o -name "*.h" \) -a -mtime -7 # 最近 7 天的 C/H 檔
find . ! -name "*.tmp" # 排除 .tmp 檔
find / -type f -size +100M -exec ls -lh {} \;find /tmp -type f -atime +3 -deletefind . -xtype lfind . -type f ! -perm 644find . -name "*.py" -exec wc -l {} +-mount 避免跨檔案系統-depth 先處理檔案再處理目錄 (配合 -delete)\( \)locate 資料庫 (updatedb) 進行快速檔名搜尋熟練掌握 find 與 xargs,能將繁瑣的檔案管理工作自動化,是系統管理與開發運維的核心技能。