jpg と gif 以外のファイルを固める。
$ find www -type f|perl -ne '/jpg|gif/ or print'|xargs tar rvf www.tar
tar: www/web_order/?R?s?[: Cannot stat: No such file or directory tar: ?`: Cannot stat: No such file or directory tar: orderform.htm: Cannot stat: No such file or directory ... tar: Error exit delayed from previous errors.
こんなエラーがでる。ファイル名が変なのがあるみたい。
404 Blog Not Found:perl - the best friend of find(1)
- print0で締めているのは、ファイル名が変な場合でも適切に処理するため。
$ find . -name \*~ -print0 | xargs -0 rmこうすると、findの出力がヌル文字(0×00、別の表現をすると”\0″)で区切られて出力されます。また、xargsも引数がヌル文字で区切られているものとして処理を行います。その結果、空白文字を含んだファイル名も正常に処理できます。
http://openlab.dino.co.jp/2008/02/20/133431188.html
ということなので、デリミタをヌル文字にしてみたら、
$ find www -type f -print0|perl -0ne '/jpg|gif/ or print "$_\0"'|xargs -0 tar rvf www.tar
エラーが出なくなった。
[参考]
find + xargs + tar - umiyoshの日記
大量のファイルをバックアップ echo + xargs + tar - 猫山工房 跡地