タグ

xargsに関するhayasakatakayaのブックマーク (2)

  • findの結果をtarファイルに纏める。xargsは使わないよ。 - 戯言

    結論としては、以下のコマンドを使用します。 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コマンドを使

  • xargs -P が激しく便利なのでメモ - おともだちティータイム

    xargs の -P オプションを使うとプロセスを複数起動して処理を並列に行なうことが出来る。 例 例えば、 1 万枚の JPEG 画像を全て 800x800 に収まるように効率良くリサイズしたい。 まず私はこのようなコマンドを考えた。 convert --geometry 800x800 *.jpg しかし zsh に怒られた。 zsh: argument list too long: convert 引数が全て展開されるためこのような事が起きる。 私は xargs を使って処理することを思い付いた。 ls | xargs -I{} convert --geometry 800x800 {} c_{} 処理は行なわれるが非常に遅い。 しかも CPU を全く使っていないことが分かり、私は処理を並列的に行なう事を考えた。 そこで xargs の -P オプションの出番である。 P の後に並列

    xargs -P が激しく便利なのでメモ - おともだちティータイム
  • 1