《巧用xargs處理棘手的文件》要點:
本文介紹了巧用xargs處理棘手的文件,希望對您有用。如果有疑問,可以聯(lián)系我們。
當有許多文件需要識別出來并清理掉的時候,你可能會想到用find/xargs的命令組合
不過你很快會發(fā)現(xiàn),當linux/unix上文件命名帶有空格之類的(在windows上這沒什么大驚小怪的)那就束手無策了
e.g:
ibusybox:test ibusybox$ find .
.
./aaaa bbbb
./cccc
ibusybox:test ibusybox$ find . -type f | xargs rm
rm: ./aaaa: No such file or directory
rm: bbbb: No such file or directory
不過還好find/xargs已經(jīng)早就想到了這個問題,xargs 的-0選項就是為-print0量身定制的,man一下xargs或者是find 你會看到-print0這個選項詳細介紹
或者更直接點,直接find . -type f -print0和find . -type f比較一下就知道為什么了 哈
e.g:
ibusybox:test ibusybox$ find . -type f -print0 | xargs -0 rm
ibusybox:test ibusybox$ ls
ibusybox:test ibusybox$
而且你會有另外一個驚喜,那就是這個命令組合可以對任意數(shù)量的文件做操作(不過如果允許你刪除整個目錄,那當然是直接上層目錄rm -r拉)
e.g:
ibusybox:test ibusybox$ rm *
bash: /bin/rm: Argument list too long
ibusybox:test ibusybox$ find . -type f -print0 | xargs -0 rm
ibusybox:test ibusybox$ ls
ibusybox:test ibusybox$
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/4711.html