LinuxMastery
•
•
By asdlkfj
LinuxMastery 12: 尋找檔案 find 與 locate
檔案到底在哪裡?
Linux 檔案系統龐大,有時候我們會忘記檔案存在哪,或者需要批量找出符合特定條件 (如 7 天前修改過) 的檔案。這時就需要 find 和 locate。
核心指令詳解
locate
- 用途:極速搜尋檔案名稱。
- 原理:它搜尋的是系統建立的資料庫 (
mlocate.db),而不是即時掃描硬碟,所以速度極快。 - 缺點:如果檔案剛建立,資料庫還沒更新,會找不到。可以用
updatedb指令手動更新。 - 範例:
locate nginx.conf
find
- 用途:強大但稍慢的即時搜尋,支援各種條件。
- 語法:
find [路徑] [條件] [動作] - 常用條件:
-name "*.log":依檔名搜尋。-type f:只找檔案;-type d:只找目錄。-size +100M:找大於 100MB 的檔案。-mtime +7:找 7 天前修改過的檔案 (-7是 7 天內)。
- 進階動作
-exec:
這是find最強大的功能,可以對找到的檔案執行指令。
注意# 找出 /var/log 下 30 天前的 log 檔並刪除 find /var/log -name "*.log" -mtime +30 -exec rm {} \;{}代表找到的檔名,\;是指令結束符號。
實戰心法
當硬碟空間滿了,想找出是哪些大檔案在佔空間時,可以用:
find / -type f -size +500M
這會列出整個系統中所有超過 500MB 的檔案,讓你快速定位「吃硬碟怪獸」。