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