xargs - 標準入力からコマンドラインを作成し、それを実行 - Linuxコマンド

当ページのリンクには広告が含まれています。

スポンサーリンク

xargsコマンドは、標準入力からコマンドラインを作成し、それを実行するコマンドです。

xargsコマンド

書式

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

xargsコマンドは、長い引数リストを渡す場合に便利なコマンドです。

スペース・タブ・改行で区切られた文字列を標準入力から読み込み、1行ずつコマンドに引数として渡して、そのコマンドを実行します。

オプション

-p指定したコマンドを実行する際に問い合わせます。コマンドを実行する場合は'y'あるいは'Y'を入力します。
-r標準入力に空白しかない場合は、コマンドを実行しません。
-t実行するコマンドを標準エラー出力に表示します。

使用例

Linuxコマンドの引数には制限があり、長すぎる引数リストを渡すと以下のようにエラーが表示され、適切にコマンドを実行できません。

$ rm *
-bash: /bin/rm: 引数リストが長すぎます

このような場合、xargsコマンドを利用すれば、適切にコマンドを実行することができます。

$ ls | xargs rm

こうするとこで、(1度にrmコマンド実行するのではなく)複数のrmコマンドを実行することになるので、引数の上限を回避し、適切のコマンドを実行することができます。

長すぎる引数リストを作成し、xargsコマンドをテストしてみたい方は、以下のBASHスクリプトを利用してください。実行すると500000個の空ファイルを作成します。作成するファイルの数は適当に調節してください。

#!/bin/bash
i=0
while [ $i -lt 500000 ]
do
  touch file-$i
  let i=$i+1
done

指定したコマンドを実行する際に問い合わせます(オプション -p)。

$ ls
file-0 file-1
$ ls | xargs -p rm
rm file-0 file-1 ?...

実行するコマンドを標準エラー出力に表示します(オプション -t)。

$ ls
file-0 file-1
$ ls | xargs -p rm
rm file-0 file-1

ファイル/ディレクトリ の人気記事

  1. Linuxコマンド【 chown 】ファイルの所有者やグループを変更する
  2. Linuxコマンド【 zip 】ファイルを圧縮する
  3. Linuxコマンド【 gzip 】ファイルを圧縮・展開する
  4. Linuxコマンド【 diff 】2つのファイルの差分を出力する
  5. Linuxコマンド【 rsync 】高速にファイルを同期・転送する(バックアップ)
  6. Linuxコマンド【 ls 】ファイルとディレクトリのリストを表示する
  7. ファイルの解凍・圧縮 - Linuxコマンド一覧(.zip .gz .Z .bz2 tar.gz .tgz tar.Z .taz .tar.bz2 .tbz2)
  8. コマンドリファレンス
  9. Linuxコマンド【 du 】ファイルのディスク使用量を表示する
  10. Linuxコマンド【 tar 】アーカイブを作成・展開する

関連記事(一部広告含む)