ホームページ  >  記事  >  運用・保守  >  Linux での xargs の使用法の詳細な説明

Linux での xargs の使用法の詳細な説明

巴扎黑
巴扎黑オリジナル
2017-08-22 13:57:522444ブラウズ

xargs は Linux で非常に便利なコマンドで、他のコマンドと組み合わせて使用​​されることが多く、非常に柔軟です。

xargs は、コマンドにパラメーターを渡すためのフィルターであり、複数のコマンドを結合するためのツールです。したがって、このコマンドは、通常、パラメータが多すぎて失敗するコマンドを置換するために xargs を使用します。パイプまたは標準入力からデータを読み取ることもできますが、ファイルの出力からデータを読み取ることもできます。

xargs のデフォルトのコマンドは echo です。これは、入力には改行とスペースが含まれますが、xargs 処理を通じて、改行とスペースはスペースに置き換えられます。例:

bash$ ls -l

total 0

-rwxr-xr-x 2 root root 4096 2009- 02-23 090218.txt

-rwxr-xr- x 2 root root 12288 2009-06-08 090607.txt

bash$ ls -l |

bash$ find ~/ mail -type f /sent-mail-jul-2005: (Linux ドキュメント プロジェクト サイト、rtf バージョン)

./sent-mail-jul-2005: 件名: Bozo の Windows/Linux 記事の批判

ls - p -l gzip は、現在のディレクトリ内の各ファイルを 1 つずつ圧縮します。

注: 興味深い xargs オプションは -n NN です。NN は、パラメーターの数を制限します。 xargs -n 8 echo は、現在のファイル内のすべてのファイルをリストします。

注: もう 1 つの便利なオプションは -0 です。find -print0 または grep - lZ をこれら 2 つの組み合わせで使用すると、空白または引用符を含む引数を処理できます。 | xargs -0 grep -liwZ GUI | xargs -0 rm -f

grep -rliwZ GUI / | -0 rm -f

上記の 2 行は両方とも、「GUI」を含むファイルを削除するために使用できます。

-i は xargs に渡した find の結果を {} に置き換えるという意味です

-I i と似ていると思います -i を -I {} に置き換えることができると言えます

-p 対話的に尋ねます。 y を使用してコマンドの実行を確認します。

-t は、実行前に各コマンドをエコーし​​ます。

パラメーター -s と -x もあります。詳細についてはマニュアルを確認してください。

これらのファイルの行数をカウントする別の例を示します。

$ file * | grep ASCII | Cut -d":" -f1 | 2_reco_14491.trc

43 dba102_rvwr_14518.trc

(注: 上記のタスクは次のコマンドでも完了できます:) $ wc -l 'file * | grep ASCII | Cut -d":" -f1 | grep ASCII | Cut -d":" -f1'

この xargs バージョンは概念を説明するために使用されます。 Linux では、状況に最も適した方法を使用して、同じタスクをいくつかの方法で実行できます。

この方法を使用すると、ディレクトリ内のファイルの名前をすばやく変更できます。

$ ls | xargs -t -i mv {} {}.bak -i オプションは、xargs に {} を各項目の名前に置き換えるよう指示します。 -t オプションは、コマンドを実行する前に印刷するように xargs に指示します。

もう 1 つの非常に便利な操作は、vi を使用してファイルを編集する場合です。一つずつ。このコマンドは、複数のファイルを検索して編集のために開く場合に非常に便利です。

いくつかのオプションもあります。おそらく最も便利なのは、操作を対話型にする -p オプションです。 .

ここでの xarg では、各コマンドを実行する前に確認する必要があります。 「y」を押すとコマンドが実行されます。このオプションは、削除や上書きなど、ファイルに損傷を与えて回復不能になる可能性のある操作を行う場合に便利です。

-t オプションは冗長モードを使用し、実行するコマンドを表示し、デバッグ中に非常に便利なオプションです。

xargs に渡される出力が空の場合はどうなりますか?次のコマンドを考えてみましょう:

$ file * | grep SSSSSS | Cut -d":" -f1 ; 2 行目に示すように、xargs への入力は空になります。冗長オプション)。これは役立つかもしれませんが、処理するものが何もない場合は、-r オプションを使用できます。 xargs -t -r wc -l $

実行するものが何もない場合、コマンドは終了します。

rm コマンド (xargs コマンドに引数として渡されます) を使用してファイルを削除するとします。ただし、rm は限られた数の引数しか受け入れられません。パラメーター リストがその制限を超えた場合はどうなりますか? xargs の -n オプションは、1 つのコマンド ライン内の引数の数を制限します。

以下は、各コマンド ラインを 2 つの引数のみに制限する方法を示しています。5 つのファイルが xargs ls -ltr に渡される場合でも、一度に 2 つのファイルのみが ls -ltr に渡されます。

$ ファイル * | grep ASCII | Cut -d":" -f1 | 1 オラクル dba 738 8 月 10 日 19:18 dba102_cjq0_14493.trc

-rw-r--r-- 1 オラクル dba 2410225 8 月 13 日:31alert_DBA102.log

ls -ltr dba102_mmn l_14497.trc dba102_reco_14491.trc

-rw-r----- 1 oracle dba 5386163 8 月 10 日 17:55 dba102_mmnl_14497。 trc

-rw-r-- --- 1 オラクル dba 6808 8 月 13 日 05:21 dba102_reco_14491.trc

ls- ltr dba102_rvwr_14518.trc

-rw-r----- 1 オラクル dba 2087 8 月 10 日 04:30 dba102_rvwr _14518.trc

この方法を使用すると、ディレクトリ内のファイルの名前をすばやく変更できます。

以上がLinux での xargs の使用法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。