xargsコマンドとは?初心者でもわかるLinuxでコマンドに引数をまとめて渡す基本
生徒
「Linuxでたくさんのファイルに同じ操作をしたいときって、どうすればいいんですか?」
先生
「そんなときはxargsコマンドを使うと便利ですよ。コマンドにまとめて渡せます。」
生徒
「まとめて渡すって、どういう意味ですか?」
先生
「文字の一覧を受け取って、それを別のコマンドの材料として使うイメージですね。順番に見ていきましょう。」
1. xargsコマンドとは?
xargsコマンドは、Linuxで標準入力から受け取った文字列を、別のコマンドの引数として渡すためのコマンドです。
難しく聞こえますが、「一覧表を受け取って、それを使って別の作業をする係」と考えるとわかりやすいです。
たとえば、ファイル名がずらっと並んでいる文字列を、そのままrmやlsなどのコマンドに渡したいときに活躍します。
2. 標準入力ってなに?
Linuxには「標準入力」という考え方があります。これはキーボード入力や、別のコマンドの出力結果のことです。
パイプ記号|を使うと、左側のコマンドの結果を右側のコマンドに渡せます。
xargsは、この受け取った内容を整理して、引数として使いやすくしてくれます。
3. xargsの基本的な使い方
まずは一番シンプルな例を見てみましょう。echoで文字を出して、xargsでlsに渡します。
echo index.html main.css script.js | xargs ls
index.html main.css script.js
この例では、3つのファイル名がxargsによってまとめられ、lsの引数として渡されています。
4. xargsを使うと何が便利?
xargsを使う最大のメリットは、大量のデータを一気に処理できることです。
人の手で一つずつコマンドを書く代わりに、一覧を使って自動で処理できます。
これは、たくさんの荷物に同じラベルを貼る作業を、機械に任せるようなものです。
5. findコマンドと組み合わせる
xargsはfindコマンドと一緒によく使われます。検索したファイルをまとめて処理できます。
find . -name "*.txt" | xargs ls
./memo.txt
./sample.txt
この例では、.txtファイルを探し、その結果をlsに渡しています。
6. rmコマンドとxargsの注意点
rmと組み合わせると、ファイルを一気に削除できますが、間違えると危険です。
echo test1.log test2.log | xargs rm
実行前にlsで確認するなど、慎重に使うことが大切です。
7. -nオプションで個数を制御する
-nオプションを使うと、一度に渡す引数の数を指定できます。
echo A B C D | xargs -n 2 echo
A B
C D
少しずつ処理したいときに便利なオプションです。
8. xargsと似た仕組みとの違い
xargsを使わずに、コマンドに直接引数を書く方法もありますが、数が多いと大変です。
また、シェルの展開だけでは扱いにくい場合でも、xargsなら整理して渡せます。
Linuxでテキスト処理やデータ処理を行ううえで、基礎として覚えておくと役立つコマンドです。