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コマンド【 gzip 】ファイルを圧縮・展開する
  3. Linuxコマンド【 rsync 】高速にファイルを同期・転送する(バックアップ)
  4. ファイルの解凍・圧縮 - Linuxコマンド一覧(.zip .gz .Z .bz2 tar.gz .tgz tar.Z .taz .tar.bz2 .tbz2)
  5. Linuxコマンド【 ls 】ファイルとディレクトリのリストを表示する
  6. Linuxコマンド【 df 】ファイルシステムのディスク容量を表示する
  7. Linuxコマンド【 diff 】2つのファイルの差分を出力する
  8. Linuxコマンド【 du 】ファイルのディスク使用量を表示する
  9. Linuxコマンド【 zip 】ファイルを圧縮する
  10. umask - ファイル作成時のパーミションを表示・変更 - Linuxコマンド

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