Hack 22. Xargs コマンド

xargs はとても強力なコマンドです。
コマンドの出力を受け取り、別のコマンドの引数として渡します。
次のものは練習サンプルで、xargs をどのように効果的に使用するかを説明しています。

1. rm を使用して多くのファイルを削除しようとした際に、エラーメッセージが出るかもしれません: /bin/rm Argument list too long - Linux
この問題を避けるために xargs を使用します。

find ~ -name ‘*.log’ -print0 | xargs -0 rm -f

2. /etc/ の下にある *.conf ファイルすべてのリストを取得します。
同じ結果を得るのに異なる方法があります。
次の例は、xargs を使用したデモンストレーションだけです。
この例では、find コマンドの出力は xargs を使用して1つずつ ls -l に渡されます。

# find /etc -name "*.conf" | xargs ls -l

3. ダウンロードしたい URL のリストをもつファイルがある場合に、以下のように xargs を使用できます。

# cat url-list.txt | xargs wget -c

4. jpg イメージをすべて検索し、それをアーカイブします。

# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

5. 外部ハードドライブにすべてのイメージをコピーします。

# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory