Linux 下找檔案很多時會用上 find 指令,當用 find 指令找到檔案或目錄後,可以在後面加上 -exec 參數,來對每一個找到的檔案或目錄執行特定指令。
find 指令加上 -exec 參數的具體語法是這樣:
$ find /path/to -name “filename” -exec command {} \;
在 -exec 前面是 find 指令找出想要的檔案,在 -exec 後面的 command 是要執行的指令, 而 { } 包著的是找到的檔案或目錄,後面需要加上 \; 完結。
以下是幾個 find -exec 的使用例子:
搜尋並刪除所有大過 100MB 的檔案:
$ find /path/to -size +100M -exec /bin/rm {} \;
找出 .log.old 結尾的檔案並刪除:
$ find /path/to -name “*.log.old” -exec /bin/rm {} \;
將所有檔案 .php 檔案改變權限為 644:
$ find /path/to -name “*.php” -exec chmod 644 {} \;
將所有目錄改變權限為 755:
$ find /path/to -type d -exec chmod 755 {} \;
將所有屬於 “olduser” 的檔案,改變為 “newuser”:
$ find /path/to -user olduser -exec chown newuser {} \;