| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン |
| linuxコマンド:xargs [2018/12/18 11:28] – mumeiyamibito | linuxコマンド:xargs [2018/12/18 11:31] (現在) – [使い方] mumeiyamibito |
|---|
| |
| ===== 使い方 ===== | ===== 使い方 ===== |
| 基本形\\ <code bash>$ COMMAND | xargs OPTION COMMAND</code> | 基本形\\ <code bash>$ COMMAND1 | xargs OPTION COMMAND2</code> |
| |
| ^ OPTION ^ 説明 ^ | ^ OPTION ^ 説明 ^ |
| | ''-L'' | 次のコマンドに与える引数の最大数 (改行までを 1 データとみなす) | | | ''-L'' | ''COMMAND2'' に与える引数の最大数 (改行までを 1 データとみなす) | |
| | ''-n'' | 次のコマンドに与える引数の最大数 (whitespace までを 1 データとみなす) | | | ''-n'' | ''COMMAND2'' に与える引数の最大数 (whitespace までを 1 データとみなす) | |
| | ''-P'' | 次のコマンドで同時に実行する最大数 (並列処理) | | | ''-P'' | ''COMMAND2'' で同時に実行する最大数 (並列処理) | |
| | ''-I'' (アイ) | 次のコマンドに与える引数を指定した文字列で指定 (この場合、''-L'' オプションは無視され、引数は 1 つずつ処理される) | | | ''-I'' (アイ) | ''COMMAND2'' に与える引数を指定した文字列で指定 (この場合、''-L'' オプションは無視され、引数は 1 つずつ処理される) | |
| | ''-0'' (ゼロ) | 最初のコマンドで得られたデータを null 文字で区切られたものとして処理する | | | ''-0'' (ゼロ) | ''COMMAND1'' で得られたデータを null 文字で区切られたものとして処理する | |
| |
| * 例: ''seq'' で生成した 1〜10 の数字を 3 個ずつ改行しながら表示 (''echo'') する。\\ <code bash> | * 例: ''seq'' で生成した 1〜10 の数字を 3 個ずつ改行しながら表示 (''echo'') する。\\ <code bash> |
| </code> | </code> |
| * ''mv'' コマンド内の引数の位置を指定したいため、find で得られたそれぞれのファイルパスは ''-I'' オプションで ''mv'' コマンド内の ''XXX'' に渡すと指定している (''-I'' オプションがない場合は、''MOVE_TO'' が指定できない)。 | * ''mv'' コマンド内の引数の位置を指定したいため、find で得られたそれぞれのファイルパスは ''-I'' オプションで ''mv'' コマンド内の ''XXX'' に渡すと指定している (''-I'' オプションがない場合は、''MOVE_TO'' が指定できない)。 |
| * 例: カレントディレクトリにあるディレクトリを zip で圧縮する (ただし、4 CPU で同時に圧縮していく)\\ <code bash> | * 例: カレントディレクトリにある複数のディレクトリを zip で圧縮する (ただし、4 CPU で同時に圧縮していく)\\ <code bash> |
| $ find . -maxdepth 1 -mindepth 1 -type d -print0 | xargs -0 -P 4 -I XXX zip -r XXX.zip XXX | $ find . -maxdepth 1 -mindepth 1 -type d -print0 | xargs -0 -P 4 -I XXX zip -r XXX.zip XXX |
| </code> | </code> |