find 指令 – Linux 搜索檔案工具

find 指令是 Linux 下十分好用的搜索指令,除了基本的搜索外,find 指令可以加入多種的參數讓搜索更容易,以下列出幾種 find 常見用法:

以下指令會在 /home 目錄搜索檔案名稱為 ‘myfile.txt’ 的檔案:

$ find /home -name ‘myfile.txt’

用 Linux 常用的正規表達式,搜索 /home/phpini 目錄下以 index 開頭的檔案:

$ fine /home/phpini -name ‘index*’

以下指令跟上面差不多,分別是不會區分英文大小寫:

$ fine /home/phpini -iname ‘index*’

以下會根據檔案體積搜索,第一個指令是找出小於 5MB 的檔案,第二個指令是找大過 20MB 的檔案:

$ fine /home/phpini -size -5000k
$ fine /home/phpini -size +20000K

以下指令會根據檔案最後存取及修改時間做搜索:

$ find /home/phpini -amin -10
$ find /home/phpini -atime -2
$ find /home/phpini -mmin -10
$ find /home/phpini -mtime -2

第一個指令會找出過去 10 分鐘被存取過的檔案.
第二個指令會找出過去 2 小時被存取過的檔案.
第三個指令會找出過去 10 分鐘被修改過的檔案.
第四個指令會找出過去 2 小時被修改過的檔案.

find 指令另一個十分實用的參數是 exec, 它會將找到的結果執行指定的檔案, 例如以下指令會將找出的 .mp3 檔, 用 ls -l 查看檔案的詳細內容:

$ find /home/phpini -name ‘*.mp3’ -exec ls -l {\}\ \;

在 -exec 後面的是要指行的指令, 上面是 “ls -l”, 而 {\}\ 代表回傳的檔案結果, 而最後的 \; 是結束字串, 需要在指令最後加上。




Leave a Reply