LoginSignup
1
0

More than 5 years have passed since last update.

findしてtarしたけどファイルが全部アーカイブされていない

Posted at

問題点

このようなシェルコマンドを打っていました。

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の挙動みたいでした。

findの結果をtarでアーカイブしたい

こちらのサイトを参考にしたところ、xargsは引数が多すぎるとバッファにためて実行を繰り返すみたいです。となるとずっとアーカイブファイルを上書きしてたってことか、、、。

解決策

上記サイトを参考に

find . -name "*hoge.cif" | tar -c -T - --null -f myfile.tar

とすれば解決!!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0