Linuxの便利なコマンド xargs

はじめに

自分が出会ったコマンドでかなり好きなコマンドの中に xargs がある。
このコマンドについて、ちょっと便利な使い方をメモするために作成した。

環境

Windows 10 Professional
WSL2 (Ubuntu 22.04 LTS)

使い方

find + xargs + rm

よく使う用途としては、
find コマンドと組み合わせて、find の検索結果を xargs コマンドに渡して処理を行うというもの。
例えば、 find で検索した結果を xargs + rm で削除するということをやってみる。

find . -type f | xargs rm

これでできちゃうんです。
これの良いところは、ファイルのみを削除できるし、find が 階層の下まで検索してくれる。
rm コマンド単体だと rm -f * となるが、これは直下までで下の階層までは削除しない。

また、

find -name [検索文字列] | xargs rm

とすることで任意のファイルを削除したりすることもできる。

find + xargs + grep

find . -type f | xargs grep -n '検索文字列'

をすることで、find で検索したファイルの中から、 検索文字列 がヒットするファイルを検索してくれる。
サーバ上で検索するときには非常に便利!

dry-run

xargs をいきなり使って処理させるのは怖い。
そういうときのために、 -p オプションがある。

例えば、さっきのコマンドに -p オプションを付けてみる。

find . -type f | xargs -p rm

↓このようにどのように展開されるのかを見ることができる。

$ find . -type f | xargs -p rm
rm ./sample ./aa/test?...

※ ちなみに find . -type f で下記のような結果になる。

$ find . -type f
./sample
./aa/test

参考

おわりに

xargs コマンドに出会ってから未だにこのコマンドはすげーって思う。
非常に便利なのでぜひマスターしたい!

Hugo で構築されています。
テーマ StackJimmy によって設計されています。