日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

find -exec 与xargs 区别

發布時間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 find -exec 与xargs 区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

find . -name "*.txt" -exec rm {} \;
find . -name "*.txt" | xargs rm {}?


-exec
? ? 1.參數是一個一個傳遞的,傳遞一個參數執行一次rm
? ? 2.文件名有空格等特殊字符也能處理
-xargs?
? ? 1.一次將參數傳給命令,可以使用-n控制參數個數
? ? 2.處理特殊文件名需要采用如下方式:
? ? find . -name "*.txt" print0 |xargs -0 rm {}?

實驗結果如下,可以清楚看到參數傳遞過程

[cpp] view plain copy
  • [root@andes.com?~/tmp/dir]#find?.?-type?f?|xargs?-t?-n?2?echo??
  • echo?./data.txt?./env2.txt???
  • ./data.txt?./env2.txt??
  • echo?./env.txt?./export2.txt???
  • ./env.txt?./export2.txt??
  • echo?./s.txt?./d.txt???
  • ./s.txt?./d.txt??
  • echo?./export.txt?./set.txt???
  • ./export.txt?./set.txt??
  • echo?./fuck.txt???
  • ./fuck.txt??
  • [root@andes.com?~/tmp/dir]#find?.?-type?f?-exec?echo?begin?{}?\;??
  • begin?./data.txt??
  • begin?./env2.txt??
  • begin?./env.txt??
  • begin?./export2.txt??
  • begin?./s.txt??
  • begin?./d.txt??
  • begin?./export.txt??
  • begin?./set.txt??
  • begin?./fuck.txt??
  • [root@andes.com?~/tmp/dir]#??

  • 技巧: find -print0 ?與 xargs -0 的結合避免文件名有特殊字符如空格,引號等無法處理:

    ?find . -name "*.txt" print0 |xargs -0 rm {}?

    find?

    ? ? ? ?-print True; print the full file name on the standard output, followed by a newline. ? If you are piping the
    ? ? ? ? ? ? ? output of find into another program and there is the faintest possibility that the ?files ?which ?you
    ? ? ? ? ? ? ? are ?searching ?for ?might ?contain ?a ?newline, then you should seriously consider using the -print0
    ? ? ? ? ? ? ? option instead of -print. ?See the UNUSUAL FILENAMES section for information about how unusual ?char-
    ? ? ? ? ? ? ? acters in filenames are handled.


    ? ? ? ?-print0
    ? ? ? ? ? ? ? True; ?print ?the full file name on the standard output, followed by a null character (instead of the
    ? ? ? ? ? ? ? newline character that -print uses). ?This allows file names that contain newlines or other types ?of
    ? ? ? ? ? ? ? white space to be correctly interpreted by programs that process the find output. ?This option corre-
    ? ? ? ? ? ? ? sponds to the -0 option of xargs.

    xargs?

    ? ? ? ?-0 ? ? Input items are terminated by a null ?character ?insteadof ?by
    ? ? ?whitespace, ?and the quotes and backslash are not special (every
    ? ? ?character is taken literally). ?Disables the end of file string,
    ? ? ?which ?istreated ?likeany other argument. ?Useful when input
    ? ? ?items might contain white space, quote ?marks, ?or ?backslashes.
    ? ? ?The ?GNU find ?-print0 ?option produces input suitable for this
    ? ? ?mode.


    總結

    以上是生活随笔為你收集整理的find -exec 与xargs 区别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。