はじめに
自分が出会ったコマンドでかなり好きなコマンドの中に 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
https://linuxjm.osdn.jp/html/GNU_findutils/man1/xargs.1.html - 【 xargs 】コマンド――コマンドラインを作成して実行する
https://atmarkit.itmedia.co.jp/ait/articles/1801/19/news014.html - find, xargs, grepコマンドで検索 備忘メモ
https://qiita.com/tatsuo-iriyama/items/d636892a3f1694e6b16d - 【Linuxコマンド基礎】xargsがわからない!→基礎中の基礎を解説します。
https://e-seventh.com/linux-xargs-basic-usage/
おわりに
xargs
コマンドに出会ってから未だにこのコマンドはすげーって思う。
非常に便利なのでぜひマスターしたい!