結論としては、以下のコマンドを使用します。 find . -name "log*" -print0 | tar -cvz -T - --null -f /tmp/log01.tar.gz 大量ファイルをtar化するときに、よく困るのはコマンド内のワイルドカードを展開した文字列が長すぎて、コマンドラインのバッファがオーバーフローして、コマンドを実行できないというもの。 例えば、 tar cvzf /hoge.tar.gz log* などとしても、ファイル名がlogで始まるファイルが大量にあると、実行できない。list too long みたいなことを言われます。これは、ワイルドカードが展開されると、 tar cvzf /hoge.tar.gz log00001.html log00002.html ・・・・・・ などとなって、コマンド長の制限を超えるためです。 そこで、xargsコマンドを使
これで出来た! ~~~ find . -type f -mtime -5 -print | xargs tar rvf hogehoge.tar.gz -X list.txt ~~~ 参考:find + xargs + tar – umiyoshの日記 list.txtの中身は除外するもの ~~~ .svn test* .htaccess cache ~~~ よくやるコマンドだけどすぐ忘れるので ~~~ find . -type f -mtime -5 | xargs tar zcvf hogehoge.tar.gz –exclude .svn find . -type f -mtime -5 -print | xargs tar zcvf hogehoge.tar.gz –exclude .svn ~~~ findの結果とtarの中身が一致しない・・・なんでなんでしょ????
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く