〜なんかいろいろ〜Linux・Windows・Mac・ネットワーク・プログラム等をメインに書いてますMenuHomeLinuxCentOSDebianProxmoxUbuntuMacWindowsCygwinsysprepTeratermコマンドawkgrepsedfindpingToolCUIGUIWebベースまとめ問い合わせxargsコマンドで覚えておきたい使い方・組み合わせ7個(+1個)2015年7月27日AppleTweetPocketLinuxやUNIXで、コマンドちょっと組み合わせて利用する際、非常に役に立つxargsコマンド。今回は、このxargsコマンドで覚えておきたい使い方・組み合わせについて紹介する。~findコマンドとの組み合わせ凡例~特定のファイルのバックアップファイルを作成する特定のファイルをバックアップディレクトリにコピーする特定のファイルに対してのみgrepを行う1.基本的な使い方まず、そもそもこのコマンドはどういう使い方をするのか。基本的には、以下のようにパイプでつなぐことで前のコマンド(コマンド1)で取得した値(標準出力)を利用してxargsで指定した別のコマンド(コマンド2)に引数として渡して実行させる事ができるコマンドだ。/work/test22.実行されるコマンド内容を表示させるxargsで指定されたコマンドの実行内容を表示させるには、「-t」オプションを付与する。/work/test2これで、xargsで実行されているコマンドがどういった形になっているかを確認することができる。この実行コマンドは標準エラー出力となっているため、実行コマンドのみ「test.cmd」、コマンドの実行結果のみ「test.lst」に出力させるといった事も可能だ。/work/ln_aaaaa2.txt3.コマンドライン一行に引数をいくつ渡すか指定する「-n」オプションを指定することで、xargsで実行するコマンド一行にいくつまで引数を渡すのか指定することができる。/work/ln_aaaaa2.txt/work/ln_aaaaa2.txt上記例のように、「-n」で指定しない場合はすべての引数がxargsで実行されるコマンドに渡される。一行づつ処理を指せるならば、「-n」オプションで引数を指定してあげると良いだろう。Links4.引数の値を明示的に利用する通常、ただxargsでコマンドを指定した場合、渡された引数はそのまま処理されるが、例えばファイル名の末尾に何か文字列を付け加えたりしたい事もあるだろう。そんなときは、「-I」オプションを使用し、コマンドで引数を明示的に使用すればいい。通常は、「{}」で引数の使用を表している。{}例えば「/work」フォルダ配下にあるファイルに対し、元のファイル名の後ろに「.bk」という文字列を付け足してコピーする場合、以下のようにする。/work/ln_aaaaa2.txt.bk5.コマンドの実行をするかどうか質問させる「-p」オプションを使用する事で、xargsで生成したコマンドを本当に実行するかどうかを確認させる事が出来る。?...y6.複数プロセスを同時に実行させるxargsで実行させるコマンドを、複数のプロセスを同時に立ち上げて実行させる場合、「-P」オプションを利用する。コマンド27.引数の区切り文字を指定する通常、xargsでコマンドに渡される引数はスペース区切りとなっているが、「-d」オプションを指定することでその区切り文字を変更することができる。コマンド2例えば、以下のようにコマンドを実行することで、カンマ区切りとして引数を渡す事ができる。-cを間にはさんでコマンドを実行してやればよい。以下のようにコマンドを実行させてみる。~findコマンドとの組み合わせ凡例~xargsとよく組み合わせて利用されるfindコマンド。このfindコマンドとの組み合わせで覚えておくと便利そうな判例を幾つか記述する。追記なお、findで扱う数が多い場合は、立ち上がるプロセス数を減らすためにfindに「-print0」、xargsに「-0」オプションを付与してやるといいだろう。自分で書いたと思うんだけど、なんで書いたんだかわからないのでとりあえず打ち消し線いれておく。blacknonインフラエンジニア(...のつもり)。仕事で使うならクライアントはWindowsよりはUNIXの方が好き。