《巧用xargs處理棘手的文件》要點(diǎn):
本文介紹了巧用xargs處理棘手的文件,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
當(dāng)有許多文件需要識(shí)別出來(lái)并清理掉的時(shí)候,你可能會(huì)想到用find/xargs的命令組合
不過(guò)你很快會(huì)發(fā)現(xiàn),當(dāng)linux/unix上文件命名帶有空格之類(lèi)的(在windows上這沒(méi)什么大驚小怪的)那就束手無(wú)策了
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
不過(guò)還好find/xargs已經(jīng)早就想到了這個(gè)問(wèn)題,xargs 的-0選項(xiàng)就是為-print0量身定制的,man一下xargs或者是find 你會(huì)看到-print0這個(gè)選項(xiàng)詳細(xì)介紹
或者更直接點(diǎn),直接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$
而且你會(huì)有另外一個(gè)驚喜,那就是這個(gè)命令組合可以對(duì)任意數(shù)量的文件做操作(不過(guò)如果允許你刪除整個(gè)目錄,那當(dāng)然是直接上層目錄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)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/4711.html