xargsの便利な使い方

ディノオープンラボラトリいまさらxargsの便利さを主張してみるに、便利なxargsの使い方が書いてあります。

  • xargsは空白文字もデリミタとして扱ってしまいますが、空白文字を含んだファイル名を処理したいときなどに困ってしまいます。そんなときには、-0 オプションを付けると、null 文字のみを区切りとみなしてくれます。たとえば、findとの組み合わせでは
    % find . -name \*~ -print0 | xargs -0 rm

    という感じで使うらしい。

  • xargsとmvを使うのは一工夫が必要。mvは
    mv {移動対象ファイル(複数)} {移動先}
    のように使うので、xargsとは一緒に使いづらい。そんなとき mv に -t オプションを指定すると良い。
    % mv -t {移動先} {移動対象ファイル(複数)}

    という書き方が出来るので、

    % find . -name \*~ -print0 | xargs -0 mv -t /var/tmp

    という使い方が出来ます。

  • カレントディレクトリにあるディレクトリを、順番に数字のディレクトリにrenameしたいときにはこんな感じ。
  • % find . -type d | sed -e '1 d' | sed -n -e p -e '=' | \
    tr '\n' '\0' | xargs -n2 -0 mv
カテゴリー: FreeBSD, Tips パーマリンク