Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxでxargsコマンドを使用する方法

Linuxでxargsコマンドを使用する方法

経験豊富なユーザーの中には、ターミナルでよりスマートに、よりハードに作業するための新しい方法を常に模索しています。 xargs は、2つのコマンド間のブリッジとして機能する便利なコマンドで、一方の出力を読み取り、読み取った項目でもう一方を実行します。このコマンドは、ユーザーがパターンの検索、ファイルの削除と名前の変更などを行うシナリオで最も一般的に使用されます。ここでは、 xargsの使用方法を示します あなたの利益のために命令しなさい。

xargsとは何ですか?

基本的な形式では、 xargs 標準入力(またはSTDIN)から情報を読み取り、読み取った項目を使用してコマンドを1回以上実行します。簡単なデモンストレーションはたくさんありますが、これが私の意味を示しています。

xargsを使用するには lsを実行します ドキュメントフォルダでコマンドを実行するには、次のコマンドを実行します。

 echo "Documents" | xargs ls 
Linuxでxargsコマンドを使用する方法

パイプ文字| xargsのSTDINとしてその前に来るものは何でも配管しています 。

そのxargsを見ることができます ドキュメントフォルダを問題なく読み取ります。これは、 xargsの機能の一例にすぎません。 コマンド。

xargs コマンドはさまざまなコマンドライン操作で使用でき、 findと一緒に使用すると非常に便利です。 指図。この記事では、 xargsの方法を理解するためのいくつかの便利な例について説明します。 およびfind 一緒に使用できます。

複数のファイルを含む操作

「ref.txt」の内容をディレクトリにあるすべてのテキストファイルにコピーするとします。タスクで複数のコマンドを実行する必要がある場合もありますが、 xargs コマンドとfind コマンド、それを簡単にします。テストディレクトリがいくつかあります。 1つにはテキストを含む「test0.txt」があり、もう1つのディレクトリにはテキストを含まない他の10個のテストファイルがあります。 test0.txtのコンテンツを取得したい場合 それを他のディレクトリの残りのテキストファイルにコピーするには、次のコマンドを実行します。

 find ./test-dir1/ -name "* .txt" | xargs -n1 cp test0.txt 
Linuxでxargsコマンドを使用する方法

上記のコマンドを理解するために、2つの部分に分けてみましょう。

最初の部分はfind./test-dir1/ -name "* .txt"です。 、「test-dir1」ディレクトリにあるすべての.txtファイルを検索します。ここで任意のディレクトリを指定できます。

2番目の部分、 xargs -n1 cp test.txt 、最初のコマンドの出力(結果のファイル名)を取得し、それを cpに渡します。 (コピー)コマンドを1つずつ。 -nに注意してください オプションはxargsに指示するため、ここでは非常に重要です。 実行ごとに1つの引数を使用します。

一緒に組み合わせると、完全なコマンドは「test0.txt」の内容をディレクトリ内のすべての.txtファイルにコピーします。

Linuxでxargsコマンドを使用する方法

多数の引数を含む操作

xargsを使用する主な利点の1つ 多数の引数を処理する能力です。たとえば、一度に多数のファイルを削除する場合、 rm コマンドが「引数リストが長すぎます」で失敗することがありました " エラー。これは、このような長い引数のリストを単純に処理できなかったためです。これは通常、削除するフォルダにファイルが多すぎる場合に当てはまります。

75個のPDFがあり、それらを削除しようとするとエラーが発生したとします。

Linuxでxargsコマンドを使用する方法

これはxargsで簡単に修正できます 。これらのファイルをすべて削除するには、次のコマンドを使用します。

 find ./test-dir2/ -type f -name "* .pdf" -print | xargs rm -f 
Linuxでxargsコマンドを使用する方法

パターン検索を含む操作

ソフトウェア開発者とシステム管理者は、コマンドラインで作業しているときに多くのパターン検索を行います。たとえば、開発者は特定の変数を変更するプロジェクトファイルを簡単に確認したい場合や、システム管理者は特定のシステム構成パラメーターを使用するファイルを確認したい場合があります。これらのシナリオでは、 xargs findと一緒に およびgrep 、物事を簡単にします。

たとえば、「maketecheasier」文字列を含むすべての「.txt」ファイルを検索するには、次のコマンドを実行します。

 find ./ -name "* .txt" | xargs grep "maketecheasier" 

これが私のシステムで生成されたコマンドの出力です。

Linuxでxargsコマンドを使用する方法

カット/コピー操作

Xargs findと一緒に コマンドは、ファイルのセットをあるディレクトリから別のディレクトリにコピーまたは移動するためにも使用できます。たとえば、10分以上経過したすべてのテキストファイルを現在のディレクトリから前のディレクトリに移動するには、次のコマンドを使用します。

find。 -name "* .txt" -mmin +10 | xargs -n1 -I'{}' mv'{}' ../ 

-私 コマンドラインオプションは、 xargsによって使用されます findの出力から読み取られた名前に置き換えられるreplace-stringを定義するコマンド 指図。ここで、replace-stringは {}です。 、しかしそれは何でもありえます。たとえば、「file」を置換文字列として使用できます。

find。 -name "* .txt" -mmin 10 | xargs -n1 -I'file' mv'file' ./practice 

xargsにいつ終了するかを指示する方法

現在のディレクトリにあるすべての.txtファイルの詳細を一覧表示するとします。すでに説明したように、次のコマンドを使用して簡単に実行できます。

find。 -名前"*.txt" | xargs ls -l <​​/ pre> 

ただし、問題が1つあります。 xargs コマンドはlsを実行します findであってもコマンド コマンドは.txtファイルを見つけることができません。以下は例です。

Linuxでxargsコマンドを使用する方法

したがって、ディレクトリに.txtファイルがないことがわかりますが、それでも xargsは停止しませんでした。 lsの実行から 指図。この動作を変更するには、 -rを使用します コマンドラインオプション:

find。 -名前"*.txt" | xargs -r ls -l <​​/ pre> 

結論

ここではxargsの使用に集中しましたが findを使用 、他の多くのコマンドでも使用できます。実行する必要のある複雑なコマンドが複数ある場合は、 xargs 非常に便利なツールです。

xargsの使用方法に関する記事を楽しんだ場合 Linuxでコマンドを実行する場合は、「デバイスに空き容量がありません」エラーの修正やUbuntuの高速化に関するガイドなど、他のLinuxコンテンツのいくつかを確認してください。


  1. Linuxでssコマンドを使用してネットワーク接続を監視する方法

    Linuxを使用している場合は、ネットワークについてもっと知る必要がある時期が来るでしょう。これを行うのに役立つツールがいくつかあり、一部のツールは他のツールよりも複雑です。 ss コマンドは多くのマシンにインストールされていると信頼できるものなので、知っておくと便利です。 ssコマンドとは何ですか? 2文字のコマンドの名前は難解に見えるかもしれませんが、実際には非常に単純です。多くのLinux/Unixコマンドと同様に、名前はコマンドの機能の省略形です。ここで、ssはSocketStatisticsの略です。 Socket Statisticsは、古いnetstatに代わるものです。

  2. Linuxでwatchコマンドを使用する方法と例

    Linuxのwatchコマンドは1つのことを行います。コマンドを繰り返し、結果を繰り返し出力して、変更を監視できるようにします。使用方法は次のとおりです。 watchコマンド構文 watchコマンドの構文は次のとおりです。 watch OPTIONS COMMAND 注: オプション 以下の表のオプションのリストである必要があります。これにより、ウォッチのデフォルトの動作が変更されます。 コマンド コマンド 監視するコマンドです 繰り返し実行する必要があります。これは、出力を監視します 見る 中断されるまで実行されます(したがって、 CTRL+Cを押して終了します ) オプション 時