xargsのとexec

まず、トリガー顔の質問について考えます

今日の学生、職員への時間、彼らはおしゃべりやテーブルの上に顔の質問を参照して、非常に興味深い質問、2人の間違った3人を、インタビューする3つの質問の合計があり、一つは答えませんでしたまで、私は職員の音色に耳を傾け、このレベルではなく、インタビューの外に、無言だったにもそれが自信どこから来たのか、非常に大きな分からないことを言いましたか?私は、彼らが昨日学んでいるかわかりませんか?

このような質問に直面します。

/test.dirテストディレクトリ下のファイル名にキーワードが含ま見つけ、それらをすべて削除します(注:2つの方法よりも小さくありません)

二つの面接官はそう書かれています:

見つける./ -name "*テスト*" 型F | rm -rf

だから、書き込みは、はい、確かではない、実際の操作、またはあまりにも入札のようです!

なぜあなたは運転をしませんか?出力であるかを調べますか?私たちは、からなる文字列のファイル名は、あなたがrmコマンドに文字列を置くことを見つけ、ファイル名で見つけ、RMは当然、通常のパイプで連結されたように実行されますが、文字ストリームとファイルパスは問題ではありませんので、削除しますそれは削除することはできませんので、検索した後、結果を確認するだけで、その後、仕事をするためにどのようにそれを削除することができますか?ただ、ライン上のパスに文字ストリームを見つけるより、この方法を見つけ、我々は命令することができる文字のストリームは、EXEC伝わってくるかのライン上の実際のパスをxargsのに役立ち見つけ、試してみましょう変換します。

[ルート@ localhostの〜]#のMKDIR test.dir。CDのtest.dir 
[ルート@のローカルホストtest.dir]#タッチTEST_ {01..06} .txtファイル
#1、LS test_01.txt test_02.txt test_03.txt test_04.txt test_05.txt test_06 [ローカルホストtest.dir @ルート]。 TXT 
F [ルート@ localhostのtest.dir]#見つける./ -name "*テスト*"型| xargsのRM -rf 
#のLS [localhostのtest.dir @ルート]#空的

別のアプローチは、この方法が運んでいる見つけ、もう一度試してみると、上記の例の効果は同じです。

#lsのtest_01.txt test_02.txt test_03.txt test_04.txt test_05.txt test_06.txt [localhostのtest.dir @ルート] 
[ルート@ localhostののtest.dir]#を発見。型F -name "*テスト*" -exec RM -f {} \。
[ルート@ localhostののtest.dir]#LSは

再び、よりシンプルで、粗方法:

`./ -nameを見つける"*テスト*"型F` -rf [ルート@ localhostののtest.dir]#rmを
[ルート@ localhostのtest.dir]#のLS#空的

私たちは、味に例を挙げてみましょう:

[ルート@ localhostのtest.dir]#のLS test_01.txt test_02.txt test_03.txt test_04.txt test_05.txt test_06.txt 
[ルート@ localhostののtest.dir]#エコーtesttesttest> test_01.txt 
[ルート@ localhostをするtest.dir ]#は空になっているこれらの2つのファイルに加えてtesttesttest> test_02.txt#エコー
[ルートはlocalhost @ test.dir]#見つける -nameを"* .TXT" | RM -rf# 我々はすでに、これは確かにこれらのファイルを削除しないことを知っています。
[ルート@ localhostのtest.dir]#LSの test_01.txt test_02.txt test_03.txt test_04.txt test_05.txt test_06.txt# 確かに
#見つける[ローカルホストtest.dir @ルート] -nameを"* .TXT" | grepをテスト#この操作は、除外されたテストファイル名を含むファイル正常で  
./test_01.txt 
./test_02.txt
./test_03.txt
./test_04.txt
./test_05.txt
./test_06.txt
[ルートをtest.dir @localhost]#検索-name "* .TXT" | xargsのは、テストをgrepする
./test_01.txt:testtesttest
./test_02.txt:testtesttest
#これは、ここで重要なのは、プラスxargsの、grepが名前に見つけることができませんが、見つけるために内部のファイルを見つけるために!

あなたはそれを感謝し、それを慎重に理解できますか?まあ、私はそれを要約しましょう!

そうでない場合は、xargsのは、grepのが唯一の文字ストリームとして結果を見つけるだろう、それはxargsので、これらの文字列は、実際のパスになったときに、ファイルとしてではありません、実際には、それはxargsのに入ってくるでしょう次のようにExecは、可能です。

#-nameを見つける "* .TXT" -exec grepのテスト{} \ [ローカルホストtest.dir @ルート]は、#{}検索結果の前、標準出力することを意味します!testtesttest testtesttest

第二に、再び同様の2の例を与えます

トピック1:

(2つの方法よりも小さくない注意してください)/test.dirテストディレクトリの下にファイル名がキーワードファイルが含まれており、すべてが/ tmpディレクトリに移動して下さい

それがどのように動作しますか?

最初の方法:

#LS test_01.txt test_02.txt test_03.txt test_04.txt test_05.txt test_06.txt [localhostのtest.dir @ルート] 
[ルート@ localhostののtest.dir]#mvと`検索-name "* *テスト"型F `/ TMP#` `コマンドがそれらを置き、自動的に意味のある経路にストリーミングすることができるであろう

第二の方法:

[ルート@ localhostのtest.dir]#のLS test_01.txt test_02.txt test_03.txt test_04.txt test_05.txt test_06.txt 
[ルート@ localhostののtest.dir]#検索-name "* *テスト"型F -exec MV <----ここに書いて書き込むことができません!

構文#mvはこれです:MV <ファイルの移動中> <対象フォルダ>が、最終的な結果は、<対象フォルダ>に補完され、ここで見つかります位置、どのように?

以下に示すように#EXECは、我々はできる、使用されていません。

fの#-nameを見つける "*テスト*" 型[localhostのtest.dir @ルート] | xargsのMV -t / tmpに

#xargs我々は-tはそれが何を意味することを理解していますか?MV -tは、これだけ完璧ではないとする、<ファイルが移動された>完了までの結果を見つけ、<移動ファイル>と<対象フォルダ>が入れ替わることを意味します!

第三の方法:

xargsのは、使用されるメカニズムが来ている間、以下のように、第三の方法及び第二の方法は、ほとんどですが、私たちは、MV -tオプションはありません。

fの#-nameを見つける "*テスト*" 型[localhostのtest.dir @ルート] | xargsの-i MV {} / TMP。

#我々はMVの構文を変更していない。この時間は、括弧の代わりにことを除いて、フロントxargsの-iオプションを追加することを忘れないでください<ファイルが移動された>、かっこ内の唯一の方法は理にかなっています!

トピック2:

ディレクトリ内のファイルが/test.dirテストのキーワードを含む検索および/ tmpディレクトリにすべてのファイルをコピー(注:2つの方法よりも小さくありません)

それがどのように動作しますか?

[ルート@ localhostののtest.dir]#の検索./ -name "*テスト*"型F | xargsの-i CP {} / TMP。
[ルート@ localhostののtest.dir]#の検索./ -name "*テスト*"型F | xargsのCP -t / tmpに。
[ルート@ localhostののtest.dir]#cpは`./ -nameを見つける"*テスト*"型F` / tmpに

私は疲れて入力しています、説明していない、と理解する最初のトピックの後に、これは自然の問題を理解するための話題ではありません!

今、私は本当に大声で3人の面接官に言いたいです:

ハハ!

ドキュメント:幹部とxargs.note
リンクします。http://note.youdao.com/noteshare ID 02401541ecae82d3fb7f3093fca2d6c2&サブ = C82F67ED974C49C0AED08685729E975F# =倫理雲がバージョンノート?

おすすめ

転載: www.cnblogs.com/yizhangheka/p/11701213.html