linu命令學習-文件查找之find-exec命令

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 \;

發佈了65 篇原創文章 · 獲贊 64 · 訪問量 30萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章