GNU/Linux >> Linux の 問題 >  >> Linux

Linuxxargsコマンドの例

Linux / UNIXのxargsコマンドは、空白または改行で区切られた標準入力から項目を読み取り、初期引数を指定してコマンドを1回以上実行します。

xargsの引数としてコマンドが指定されていない場合、ツールが実行するデフォルトのコマンドはエコーです。

標準入力の空白行は無視されます。これらのxargsが標準入力から読み取る項目は、二重引用符または一重引用符、または円記号で保護できます。

xargsコマンドは、特にgrepやechoなどのコマンドと組み合わせると非常に強力です。このチュートリアルでは、xargsコマンドを使い始めるためのいくつかの基本的な使用法について説明します。

Linuxxargsコマンド構文

xargsコマンドの構文は次のとおりです。


xargs [options] [command [initial-arguments]]

コマンドman xargsを呼び出すと、すべてのオプションと引数を表示できます。 ターミナルから。次のセクションでは、argsコマンドの例をいくつか示します。

Linuxxargsの簡単な例

コマンドを指定しないxargsコマンドは、標準入力の引数をエコーし​​ます。次の例では、lsコマンドからの出力がxargsコマンドにパイプされ、コマンドなしのxargsコマンドが標準入力のファイルリストをエコーし​​ます。


# ls | xargs

Xargsの例1.a

次の例は、echoコマンドの出力がxargsにパイプされ、xargsコマンドがパイプされた引数を使用してmkdirを使用してフォルダーを作成する方法を示しています。 。


# echo 'one two three' | xargs mkdir

Xargsの例1.b

引数の数を制限する

xargsに渡される引数の数は、システムの制限によって定義されます。 -n switchは、特定のコマンドに渡される引数の数を制限します。 xargsコマンドはnで継続的に実行されます すべての引数がなくなるまでの引数の数。

次の例では、標準入力から読み取られる引数の数を2に制限しています。Xargsコマンドは、すべての引数の読み取りが完了するまで、一度に2つの引数の読み取りを続行します。さらに、-t オプションは、コマンドを実行する前に標準出力に出力します。


# echo "file1 file2 file3 file4 file5" | xargs -n 2 -t touch

Xargsの例2

実行前にユーザープロンプトを有効にする

-pのxargs オプションは、コマンドの実行前にユーザーにプロンプ​​トを表示します。次の例は、xargsコマンドが、各引数でフォルダーの作成を続行する前に、ユーザーに「Y」または「N」のいずれかを求めるプロンプトを表示することを示しています。


# echo Hello World | xargs -p mkdir
# echo one two three | xargs -p -n 1 mkdir

Xargsの例3

findおよびxargsコマンドを使用してファイルを削除する

xargsの最も一般的な使用法の1つは、findコマンドで使用することです。 findコマンドを実行した後、一連のファイルを削除または名前変更する状況を考えてみます。ここでは、findコマンドとxargsコマンドの両方を、特定の属性に一致するファイルで一緒に使用して、一度に削除または名前変更することができます。

たとえば、/tmp内のすべてのファイルを削除するとします。 過去5分以内に作成されたフォルダ。 xargsを使用してこれを行うには、まず、findを使用して、選択した基準に一致するすべてのファイルを見つけます。 コマンドを実行してから、出力をxargsコマンドにパイプします。xargsコマンドはrmを使用します。 それらを削除するコマンド。


# find /tmp/* -cmin -5 
# find /tmp/* -cmin -5 | xargs -t rm
# find /tmp/* -cmin -5 

Xargsの例4

xargsを使用してパターンを検索

Xargsコマンドのもう1つの強力な使用法は、lsなどの別のunixコマンドによって返されるファイルのリストでパターンを検索することです。 またはfind 。次の例は、findを組み合わせたものです およびxargs ここで、findコマンドは、現在の作業ディレクトリからすべてのtext(.txt)ファイルを返します。結果、つまりファイル名はxargsコマンドにパイプされ、grep "file"を使用して「file」という単語を検索します。 。パターンがファイルに存在する場合、パターンを含む行がファイル名とともにターミナルに印刷されます:


# find . -name "*.txt" | xargs grep "file"

Xargsの例5

xargsを使用して複数のコマンドを実行する

これまで、xargsコマンドがパイプ引数を使用して、ファイルのバッチの名前変更、パターンの検索などのさまざまなタスクを実行する方法を見てきました。これらを実行している間、パイプ操作の後に単一のコマンドを使用します。 xargsと一緒に複数のコマンドを実行することも可能です。

たとえば、複数のファイルを作成し、xargsコマンドを使用してそれらを同時に一覧表示する場合は、-Iを指定してxargsコマンドを実行します。 スイッチに続いて、置換文字列を定義します。次に、出現するすべての置換文字列が、xargsに渡された引数に置き換えられます。


# echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'

Xargsの例6

コマンドを並行して実行する

状況によっては、xargsを使用して、引数ごとに計算集約型のコマンドを呼び出す場合があります。マルチコアマシンを利用することで、コマンドを並行して呼び出すことができます。 -P switchは、プロセスの最大数を定義することにより、これを正確に実行します。デフォルトでは、プロセスの最大数は1です。

たとえば、次のxargsコマンドは、一度に5つの引数を取ることで、1から30までの数値を出力します。特に、一度に最大8つのプロセスを実行します。


# printf %s\\n {1..30} | xargs -n 5 -P 8

Xargsの例7

ファイルからの入力を受け入れる

これまで、xargsコマンドの入力は、標準の入力から、またはパイプ操作を介して他のコマンドの出力から読み取られるのを見てきました。ただし、xargsコマンドがファイルから入力を直接読み取ることも可能です。 -a スイッチを使用すると、xargsに必要な入力用のファイルを定義できます。

次のxargsコマンドは、ファイル(input.txt)から入力を読み取り、touchコマンドを使用してファイルを作成します。


# cat input.txt
one.txt
two.txt
# xargs -a input.txt touch

Xargsの例8

概要

それで全部です! XARGSコマンドのいくつかの基本的な使用法について説明しましたが、XARGSのより高度な機能を試して、強力なコマンドを作成できるようになりました。投稿が気に入っていただけたら幸いです。読んでいただきありがとうございます。


Linux
  1. Linuxでの11のXargsコマンドの例

  2. 8 Linux TR コマンドの例

  3. Linux での rm コマンドの例

  1. Linux での ps コマンドの例

  2. Linux での sa コマンドの例

  3. w Linux でのコマンド例

  1. Linux での ac コマンドの例

  2. Linux での df コマンドの例

  3. Linux での du コマンドの例