find之exec簡介
find一般查找文件,進一步的操作由exec完成。 使用find時,只要把想要的操作寫在一個文件裏,就可以用exec來配合find查找
命令學習
exec解釋:
-exec 參數後面跟的是command命令,它的終止是以;爲結束標誌的,考慮到各個系統中分號會有不同的意義,前面加反斜槓。
{} 花括號代表前面find查找出來的文件名。
在有些操作系統中只允許-exec選項執行諸如l s或ls -l這樣的命令。大多數用戶使用這一選項是爲了查找舊文件並刪除它們。建議在真正執行rm命令刪除文件之前,最好先用ls命令看一下,確認它們是所要刪除的文件
exec選項後面跟隨着所要執行的命令或腳本,然後是一對兒{ },一個空格和一個\,最後是一個分號。
爲了使用exec選項,必須要同時使用print選項。如果驗證一下find命令,會發現該命令只輸出從當前路徑起的相對路徑及文件名。
常用範例
例1:ls -l命令放在find命令的-exec選項中
find . -type f -exec ls -l {} \;
find命令匹配到了當前目錄下的所有普通文件,並在-exec選項中使用ls -l命令將它們列出。
例2:在目錄中查找更改時間在n日以前的文件並刪除它們
find . -type f -mtime +14 -exec rm {} \;
例3:在目錄中查找更改時間在n日以前的文件並刪除它們,在刪除之前先給出提示
find . -name “*.log” -mtime +5 -ok rm {} \;
例4:-exec中使用grep命令
find /etc -name “passwd*” -exec grep “root” {} \;
find命令首先匹配所有文件名爲“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然後執行grep命令看看在這些文件中是否存在一個root用戶。
例5:查找文件移動到指定目錄
find . -name “*.log” -exec mv {} /home/jiangbiao/Test/test4 \;
例6:用exec選項執行cp命令
find . -name “*.log” -exec cp {} /home/jiangbiao/Test/test3 \;