連載
» 2018年01月19日 05時00分 公開

【 xargs 】コマンド――コマンドラインを作成して実行するLinux基本コマンドTips(176)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、標準入力やファイルからリストを読み込んでコマンドラインを作成し、実行する「xargs」コマンドです。

[西村めぐみ,@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、標準入力やファイルからリストを読み込んでコマンドラインを作成し、実行する「xargs」コマンドです。

xargsコマンドとは?

 「xargs」は、「標準入力やファイルからリストを読み込み、コマンドラインを作成して実行する」というコマンドです。

 例えばあるコマンドの出力をパイプでxargsコマンドに送り込み、別のコマンドの引数として指定するといった使い方ができます。



xargsコマンドの書式

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

※[ ]は省略可能な引数を示しています。




xargsの主なオプション(入力関係)

短いオプション 長いオプション 意味
-a ファイル --arg-file=ファイル 標準入力の代わりにファイルから項目を読み込む
-0 --null 入力を空白や改行ではなくNULL文字で区切る
-d 文字 --delimiter=文字 入力の区切り文字を指定する。\000(8進数)または\x00(16進数)も使用可能
-E 終端文字列 ファイルの終端文字列を指定する ※1
-I 置換文字列 xargs実行時に指定したコマンドの引数のうち、置換文字部分を標準入力から読み込んだ名前で置き換える(「-L 1」相当の動作になる。本文参照) ※1

xargsの主なオプション(実行関係)

短いオプション 長いオプション 意味
-L 行数 1回のコマンドラインで使用する入力行数の上限(指定した行数ごとにコマンドを実行することになる。本文参照) ※1
-n 個数 --max-args=個数 1回のコマンドラインで使用する引数の上限
-s 文字数 --max-chars=文字数 1回分のコマンドラインの最大文字数
-x --exit 作成されたコマンドラインの長さが上限を超過していたら終了する(-I、-L使用時は自動で有効になる)
--show-limits コマンドラインの長さの上限を表示する(表示して直ちに終了したい場合は「xargs --show-limits -r < /dev/null」のように実行)
-P プロセス数 --max-procs=プロセス数 同時に実行するプロセス数の上限を指定する(0を指定すると無制限になる。デフォルトは1)
-r --no-run-if-empty 標準入力が空の場合は指定したコマンドを実行しない(「-r」を指定しなかった場合、入力が空でもコマンドを1回は実行する)
-t --verbose 実行前にコマンドラインを標準エラー出力へ出力する
-p [文字列] --interactive[=文字列] 実行前に文字列とコマンドラインをプロンプトとして表示してユーザーの入力を待つ。文字列を指定しなかった場合はコマンドラインのみをプロンプトとして表示する。なお、いずれの場合も自動的に-tを指定したことになる

※1 これらのオプションにはほぼ同じ機能を指定する別のオプションがあるものの非推奨となっている。「-E」に対して「-e」と「--eof」、「-I」に対して「-i」と「--replace」、「-L」に対して「-l」と「--max-lines」である。動作の違いはmanコマンドの説明を参照(man xargs)。





コマンドの実行結果を引数にして別のコマンドを実行する

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。