「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

xargs【コマンド】

pointこの用語のポイント

pointコマンドだよ

pointUNIX系で使えるよ

point引数を標準入力から与えるよ

スポンサーリンク

簡単に書くよ

xargs【コマンド】とは

コンピュータさんに対する命令文(コマンド)のひとつ
であり

引数(プログラムや関数に入れる値)を標準入力から与えるときに使うコマンド
です。


image piyo

詳しく書くよ

「xargs」コマンド

標準入力から引数を取得するときに使うコマンド

です。
UNIXLinuxとかMacとか)で使えます。

書き方は

xargs [オプション] [コマンド[引数]]

です。
オプションは、あれやこれやとあります。

オプション説明
-a 【ファイル名】標準入力ではなく【ファイル名】から読み込む
-0ヌル文字で区切る
-d【デリミタ【デリミタ】で区切る
-E【文字列】【文字列】をファイル終端文字として設定する。【文字列】が登場したら、それ以降の入力は無視する。
-I【文字列】[引数]の中の【文字列】を標準入力から読み込んだものに置き換える
-L【数字】1コマンドに最大【数字】行読み込む。読み込み行数が【数字】行に達する度にコマンドを実行するよ
-n【数字】最大【数字】個の引数を取る。引数が【数字】個に達する度にコマンドを実行するよ
-p1行ごとに「実行する?」って確認してくる
-r標準入力に空白しか含まれていない場合は、指定したコマンドを実行しない。
-s【数字】1つの[コマンド[引数]]につき最大【数字】文字使う
-t実行する内容を標準エラー出力出力する
-x[コマンド[引数]]の長さが上限を超えていたら終了する(-sオプション参照)
-P【数字】最大【数字】個のプロセスを同時実行する

などです。
オプションは複数組み合わせて指定できます。

例えば

xargs ls

と打ちます。
そうすると入力待ち状態になりますので「hoge.txt」と入力して「Ctrlキー」+「d」を押します。

この実行結果が

ls hoge.txt

と同じになるのです。
「ls」コマンドの引数を標準入力から受け取った形です。

「xargs」の使い所はいろいろありますが、単独で使われることはまずありません。
例えば

more list.txt |xargs more

のように他のコマンドと組み合わせて使います。
この例では「list.txt」の中にファイル名の一覧が記載されているのですが、そのリストに記載されているファイルの中身を表示します。

more list.txt

の結果が例えば

aaa.txt
bbb.txt
ccc.txt


になるとして「|xargs more」の部分で「more」コマンドの引数として上記結果が与えられます。
つまり

more aaa.txt
more bbb.txt
more ccc.txt

を同時に実行したのと同じ扱いになるのです。
使いこなせれば便利そうなコマンドですね。

あっ、そうそう。
ついでなので「-I」オプションの解説もしておきますね。
よく分からないけど分かれば便利、それが「-I」オプションです。

「-I」オプションは「指定文字列を標準入力から読み込んだものに置き換える」オプションですが、言葉で聞いてもよく分からないかもしれません。
実際に例を挙げると、例えばこんな感じの使い方をします。

more list.txt |xargs -Irs cp rs hoge_dir/

「-Irs」の「rs」が指定文字列です。
その後ろに「cp rs hoge_dir/」があると思いますが、この「cp rs hoge_dir/」の「rs」を標準入力から読み込んだもの、今回はlist.txtの中身に置き換えますよ~ということです。
このコマンドを実行するとlist.txtの中に記載のあるファイルをすべてhoge_dir/の中にコピーしてくれますよ。

cp aaa.txt hoge_dir/
cp bbb.txt hoge_dir/
cp ccc.txt hoge_dir/

を同時に実行したのと同じ扱いです。

「xargs」コマンドは慣れるまでが大変ですが、慣れるとかなり便利です。
気が向いたら、いろいろ試してあげてください。


image piyo2

一言でまとめるよ

まぁ「xargs」ってコマンドが出てきたら「引数(プログラムや関数に入れる値)を標準入力から与えるときに使うんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像038
書籍画像008

おまけ

■訳してみるよ

「x」は何でしょうね。
単なるアルファベットの「X」でしょうか。
「args」は多分「arguments(アーギュメンツ)」の略です。
「arguments(アーギュメンツ)」は「argument(アーギュメント)」+複数形にする「s」です。
「argument(アーギュメント)」の意味は「引数(ヒキスウ)」とかです。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
サイバー忍者入門 忍者・スパイ・軍隊・ハッカーに学ぶ フルスタック・ハッキング
ソフトウェア開発現場の「失敗」集めてみた。 42の失敗事例で学ぶチーム開発のうまい進めかた