簡體   English   中英

find命令末尾的\\;和+之間有什么區別?

[英]What's the difference between `\;` and `+` at the end of a find command?

這些是bash命令,用於將制表符轉換為空格。 這是原始stackoverflow帖子的鏈接

這個用\\; 在命令末尾

find /path/to/directory -type f -iname '*.js' -exec sed -ie 's|\t|    |g' '{}' \;

這個用+代替\\;

find /path/to/directory -type f -iname '*.js' -exec sed -ie 's|\t|    |g' '{}' '+'

兩者之間到底有什么區別?

\\; +與bash無關。 這是find命令的參數,專門用於find-exec選項。

find -exec使用{}將當前文件名傳遞給指定的命令,並\\; 標記命令參數的結尾。 之所以需要\\是因為; 本身就是特殊的抨擊; 通過輸入\\; ,您可以傳遞文字; 字符作為參數。 (您也可以輸入';'";" 。)

+符號(沒有\\必要的,因為+是不是特別的bash)的原因find調用指定的命令使用多個參數,而不是只有一次,在類似的方式xargs

例如,假設當前目錄包含2個名為abcxyz文件。 如果輸入:

find . -type f -exec echo {} \;

它兩次調用echo命令,產生以下輸出:

./abc
./xyz

如果您輸入:

find . -type f -exec echo {} +

然后find僅調用一次echo ,並顯示以下輸出:

./xyz ./abc

有關更多信息,請鍵入info findman find (如果您的系統上已安裝文檔),或者您可以在http://www.gnu.org/software/findutils/manual/html_node/find_html/在線閱讀該手冊

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM