findしてtarしたけどファイルが全部アーカイブされていない
問題点
このようなシェルコマンドを打っていました。
find . -name "*hoge.cif" | xargs tar -cf myfile.tar
すると、myfile.tar
ができたのでサーバーから落としてきてローカルで展開したところ、あれれ?ファイル全部入ってないぞとなりました。
find . -name "*hoge.cif" | wc -l
でファイル数を調べてみたらちゃんと8000近くあるのに、
tar -tf myfile.tar | wc -l
でアーカイブされたファイル数を数えてみても1503しか入っていない。
問題はどうやらxargs
の挙動みたいでした。
こちらのサイトを参考にしたところ、xargs
は引数が多すぎるとバッファにためて実行を繰り返すみたいです。となるとずっとアーカイブファイルを上書きしてたってことか、、、。
解決策
上記サイトを参考に
find . -name "*hoge.cif" | tar -c -T - --null -f myfile.tar
とすれば解決!!
Author And Source
この問題について(findしてtarしたけどファイルが全部アーカイブされていない), 我々は、より多くの情報をここで見つけました https://qiita.com/m-dove/items/c6eb35976c929e540e4f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .