結合xargsが見つけ
ダクトは、例えば、別のコマンドの入力としてコマンドの出力を渡すことです:Command1を| command2のコマンド2が、入力文字列として出力パラメータの内容のみ
ファイルハンドルとしてそれを取ることができません。
xargsが書かれた文書を見つけるために検索を操作できるようにすることです。パイプストリングは、コマンドの実行後にファイルできるように、それは来ました。
[ルート@ localhostの〜]#の検索は/ etc / -name " ホスト" | 猫 の/ etc / ホスト [ルート@ localhostの〜]#の検索は/ etc / -name " ホスト" | xargsの 猫 127.0。0.1 ローカルホストlocalhost.localdomainをlocalhost4 localhost4.localdomain4 :: 1 localhostのlocalhost.localdomainをlocalhost6 localhost6.localdomain6
注:
コマンドを見つけ、ファイルに一致するようにfindコマンドに対処するための-execオプションを使用してのexecを実行するために一致するすべてのファイルに渡されます。しかし、いくつかのシステムは、execに渡すことができ
、数分を実行するためのfindコマンドの後に、オーバーフローエラーが発生し、エラーメッセージは通常、「あまりにも長い引数リスト」またはであるので、「パラメータ列のオーバーフロー。」、限られたコマンド長 これはxragsで
findコマンドと組み合わせる場合は特に、便利なコマンドが配置されています。xargsのにファイル転送コマンドと一致するコマンドを見つけ、そしてxargsが、それぞれが専用のファイルの一部ではなく、getコマンド
ではない-execオプションとして、全体を。だから、最初に取得したファイルの最初の部分に対処し、次のバッチ、およびその継続することができます。
いくつかのシステムでは、引数として最初の性能を一致させるために、対応するプロセスを開始するために、各マッチング・ファイルを処理するためにファイル全体を-execオプションをしない使用して、それは
あまりにも多くのプロセスが存在するであろういくつかのケースの場合、システムのパフォーマンスを減少の問題。だから、効率は高くありません。しかし、xargsのにコマンドが唯一のプロセスです。xargsのコマンドを使用する場合に加えて、どのような
すべてのパラメータ、又はバッチで得られたパラメータを取得するための時間であり、得られた各デジタルパラメータは、コマンドのオプションと対応するカーネル調整パラメータに基づいて決定されます。
検索| xragsコマンド
-execとxargsの間の差を比較すると、
例1:実装を確認してください
[ルート@ localhostのTMP]#のタッチ { 1 ... 10 }の.txt [ルート@ localhostのTMP]#の検索 -name " * .TXT " -exec LS {} \。 。/ 1 .TXT 。/ 2 .TXT 。/ 3 .TXT 。/ 4 .TXT 。/ 5 .TXT 。/ 6 .TXT 。/ 7 .TXT 。/ 8 .TXT 。/ 9 .TXT 。/ 10 .TXT [ルート@ localhostのTMP]#件のfind -name " * .TXT " | xargsの lsと 。/ 10の.txt ./ 1の.txt ./ 2の.txt ./ 3の.txt ./ 4の.txt ./ 5の.txt ./ 6の.txt ./ 7の.txt ./ 8の.txt ./ 9の.txt
例2:検証効率
[ルート@ localhostのTMP]#件の検索。-name " * .TXT " -exec RM {} \。 [ルート@ localhostのTMP]#のタッチ { 1 ... 100000 } .txtの [ルート@ localhostの〜]#を見つける -name " * .TXT " | xargsの RM
xargsの一般的なオプション
@ -0、ときの一般的な文字、画像/空白文字として特殊文字、sdtin [ルート@ localhostの〜]#タッチ " AB&C.txt " [ルート@ localhostの〜]#検索 -name " * .TXT " | xargsの - 0 LSの LS:できないアクセス./ ABのc.txt :そのようなファイルやディレクトリはありません [ルート@ localhostの〜]#検索 -name " * .TXT " -print0 | xargsの - 0 LS 。 / AB c.txt
// -aファイルを標準入力としてファイルから読み込まれ ます。[root @ localhostの〜]#のCATを > 。1 .TXT << EOF > AAA BBB > CCC DDD > ASD ER > EOF [ルート@ localhostの〜]#xargsの -a 。1 。 TXT asdasasd asdasdasd ASD
// xargsの時に時々 -eフラグ、注意が-Eであってもよく、フラグが符号でなければならないスペースで区切って、彼らの分析はフラグが含まれている、このフラグが停止し 、[ルートを@ localhostの〜]#xargsの -E 「DDD 」 -a 1。.txtの AAA BBB CCC [ルート@ localhostの〜]#CAT 1。 .TXT | xargsの -E ' DDD ' AAA BBB CCC
// プラスリア-n num個の数は、デフォルトでは、すべて使用することで、実装に使用されるコマンドの引数の数を示し ます。[root @ localhostの〜]#のCATを 1。 .TXT | xargsの -n 2 AAA BBB CCCがddd AS Dをえー
// -p操作は双方向性を持っている、コマンドの各実行が対話的に選択するようユーザーに促しますが、毎回の引数は、ユーザーを実行するように求められたときに 、[ルート@ localhostの〜]#のCAT 1 | .TXTをxargsの - p型 エコー AAA BBB ERは、DDD CCCをASD?... y軸 AAA BBB CCC DDD ASD ER
// -iまたは-I、それは、項目名のxargsのそれぞれは、一般的にラインごとに割り当てられている、Linuxサポートに依存する、{}、{}の代わりに使用することができる [ルート@ localhostの〜]#タッチ { 2 .. 10 .TXT} #方法 [ルート@ localhostの〜]#検索 -name " * .TXT " | xargsの -t CP -t / tmpに/ #方法II [ルート@ localhostの〜]#のCP -v ` 検索 / -nameルート" * .TXT " `の/ var / tmpに/ [ルート@ localhostの〜]#のCP $(検索ルートを-name / " * .TXT ")の/ var / tmpに/ #方法三 [ルート@ localhostの〜]#見つける -name " * .TXT " -exec CP {} / tmpに\; #方法四 [ルート@ localhostの〜]#見つける -name " * .TXT " | xargsの -I {} CP -v {} / VAR / TMP / " ./ab c.txt " - > " の/ var / TMP / ABのc.txt " " ./1.txt " - > 」の/ var / TMP /1.txt " " ./2.txt " - > " は/ var / tmpに/ 2。 ./3.txt " - > " /var/tmp/3.txt " " ./4.txt " - > " /var/tmp/4.txt " " ./5.txt " - > " は/ var / TMP / 5.txt " " ./6.txt " - > " /var/tmp/6.txt " " ./7.txt " - > " /var/tmp/7.txt " " ./8.txt " - > " /var/tmp/8.txt " " ./9.txt " - >" /var/tmp/9.txt " 」./10.txt " - > " /var/tmp/10.txt 」