引用  http://jaseywang.me/2011/05/20/execxargs-in-find/

查找當前目錄下以anaconda開頭的文件,並查找其中的evince字符串
# find . -name “anaconda*” -exec grep -i evince {} \;

查找當前目錄下的install.log文件,並做md5校驗
# find . -name “install.log” -exec md5sum {} \;

查找/var/log下的error日誌,將其移除
# find /var/log/ -name “error*” -exec mv {} /trash \;

查找當前目錄下以a開頭的文件,將其加上後綴.log
# find . -name “a*” -print | xargs -i mv {} {}.log
# find . -name “a*” -exec mv {} {}.log \;

查找當前目錄下以a開頭的文件,並將其列出
# find . -name “a*” -exec ls -l {} \;

刪除0字節的文件
# find -type f -size 0 -exec rm -rf {} \;

查找當前目錄下的jpg文件,並統計其大小總和
# find . -name “*.jpg” -exec wc -c {} \; | awk ‘{print $1}’ | awk ‘{a+=$1}END{ print a}’

統計/var目錄下文件以M為大小,以列表形式列出來
# find /var -type f | xargs ls -s | sort -nr | awk ‘{size=$1/1024;printf(“%dMb %s\ n”,size,$2);}’ | head

查找/var目錄下大於100M的文件,並統計文件的個數
# find /var -size +100M -type f | tee file | wc -l

統計一個目錄中的全部文件數
# find ./ -type f -print | wc -l

統計一個目錄中的全部子目錄數
# find ./ -type d -print | wc -l

查找bk結尾的文件使用gzip壓縮
# find ./ -name “*.bk” -exec gzip {} \;

將其解壓縮
# find ./ -name “*.bk.zip” -exec gzip -d {} \;

將當前目錄下的文件使用tar壓縮
# find ./ -type f | xargs tar -zcvf bk.tgz

注意:有沒有-type這個選項的最終結果是完全不一樣的。

找出當前目錄下jpg文件,並tar打包壓縮
# find ./ -name “*.jpg” -print0 | xargs -0 tar -zcvf bk.tgz

找出名稱是8個數字的文件夾
# find / -type d -regextype posix-egrep -regex ‘.*/[0-9]{}’

注意:如果使用絕對路徑進行搜索,會導致搜索的路徑比較深,最終會出現“xargs: argument line too long”的錯誤。可以通過控制xargs每次處理的條數進行控制。下面的命令使xargs每次處理3條
# find ./ -type f -print0 | xargs -0 -l3 rm -rf

將當前目錄下的jpg圖片轉成灰色(迎接即將到來的互聯網維護日)
# find ./ -type f -name “*jpg” -exec convert {} -colorspace Gray {} \;
要安裝ImageMagick這個工具,更詳細的convert請參見如下鏈接:
http://www.linuxbyte.org/linux-convert-mini-howto.html

Related posts 相關文章
用 find 比對出與原始 tarball 檔較新的檔案
More...
top指令
More...
sysctl指令
More...
rarlinux 指令–壓縮分割加密檔案
More...

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。