Linuxでxargsコマンドを使用する方法
経験豊富なユーザーの中には、ターミナルでよりスマートに、よりハードに作業するための新しい方法を常に模索しています。 xargs
は、2つのコマンド間のブリッジとして機能する便利なコマンドで、一方の出力を読み取り、読み取った項目でもう一方を実行します。このコマンドは、ユーザーがパターンの検索、ファイルの削除と名前の変更などを行うシナリオで最も一般的に使用されます。ここでは、 xargs
の使用方法を示します あなたの利益のために命令しなさい。
xargsとは何ですか?
基本的な形式では、 xargs
標準入力(またはSTDIN)から情報を読み取り、読み取った項目を使用してコマンドを1回以上実行します。簡単なデモンストレーションはたくさんありますが、これが私の意味を示しています。
xargs
を使用するには ls
を実行します ドキュメントフォルダでコマンドを実行するには、次のコマンドを実行します。
echo "Documents" | xargs ls
パイプ文字|
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
上記のコマンドを理解するために、2つの部分に分けてみましょう。
最初の部分はfind./test-dir1/ -name "* .txt"
です。 、「test-dir1」ディレクトリにあるすべての.txtファイルを検索します。ここで任意のディレクトリを指定できます。
2番目の部分、 xargs -n1 cp test.txt
、最初のコマンドの出力(結果のファイル名)を取得し、それを cp
に渡します。 (コピー)コマンドを1つずつ。 -n
に注意してください オプションはxargs
に指示するため、ここでは非常に重要です。 実行ごとに1つの引数を使用します。
一緒に組み合わせると、完全なコマンドは「test0.txt」の内容をディレクトリ内のすべての.txtファイルにコピーします。
多数の引数を含む操作
xargs
を使用する主な利点の1つ 多数の引数を処理する能力です。たとえば、一度に多数のファイルを削除する場合、 rm
コマンドが「引数リストが長すぎます」で失敗することがありました " エラー。これは、このような長い引数のリストを単純に処理できなかったためです。これは通常、削除するフォルダにファイルが多すぎる場合に当てはまります。
75個のPDFがあり、それらを削除しようとするとエラーが発生したとします。
これはxargs
で簡単に修正できます 。これらのファイルをすべて削除するには、次のコマンドを使用します。
find ./test-dir2/ -type f -name "* .pdf" -print | xargs rm -f
パターン検索を含む操作
ソフトウェア開発者とシステム管理者は、コマンドラインで作業しているときに多くのパターン検索を行います。たとえば、開発者は特定の変数を変更するプロジェクトファイルを簡単に確認したい場合や、システム管理者は特定のシステム構成パラメーターを使用するファイルを確認したい場合があります。これらのシナリオでは、 xargs
、 find
と一緒に およびgrep
、物事を簡単にします。
たとえば、「maketecheasier」文字列を含むすべての「.txt」ファイルを検索するには、次のコマンドを実行します。
find ./ -name "* .txt" | xargs grep "maketecheasier"
これが私のシステムで生成されたコマンドの出力です。
カット/コピー操作
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ファイルを見つけることができません。以下は例です。したがって、ディレクトリに.txtファイルがないことがわかりますが、それでも
xargs
は停止しませんでした。ls
の実行から 指図。この動作を変更するには、-r
を使用します コマンドラインオプション:find。 -名前"*.txt" | xargs -r ls -l </ pre>結論
ここでは
xargs
の使用に集中しましたがfind
を使用 、他の多くのコマンドでも使用できます。実行する必要のある複雑なコマンドが複数ある場合は、xargs
非常に便利なツールです。
xargs
の使用方法に関する記事を楽しんだ場合 Linuxでコマンドを実行する場合は、「デバイスに空き容量がありません」エラーの修正やUbuntuの高速化に関するガイドなど、他のLinuxコンテンツのいくつかを確認してください。
-
Linuxでssコマンドを使用してネットワーク接続を監視する方法
Linuxを使用している場合は、ネットワークについてもっと知る必要がある時期が来るでしょう。これを行うのに役立つツールがいくつかあり、一部のツールは他のツールよりも複雑です。 ss コマンドは多くのマシンにインストールされていると信頼できるものなので、知っておくと便利です。 ssコマンドとは何ですか? 2文字のコマンドの名前は難解に見えるかもしれませんが、実際には非常に単純です。多くのLinux/Unixコマンドと同様に、名前はコマンドの機能の省略形です。ここで、ssはSocketStatisticsの略です。 Socket Statisticsは、古いnetstatに代わるものです。
-
Linuxでwatchコマンドを使用する方法と例
Linuxのwatchコマンドは1つのことを行います。コマンドを繰り返し、結果を繰り返し出力して、変更を監視できるようにします。使用方法は次のとおりです。 watchコマンド構文 watchコマンドの構文は次のとおりです。 watch OPTIONS COMMAND 注: オプション 以下の表のオプションのリストである必要があります。これにより、ウォッチのデフォルトの動作が変更されます。 コマンド コマンド 監視するコマンドです 繰り返し実行する必要があります。これは、出力を監視します 見る 中断されるまで実行されます(したがって、 CTRL+Cを押して終了します ) オプション 時