![](/img/trans.png)
[英]What's the difference between 'eval $command' and $command?
[英]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個名為abc
和xyz
文件。 如果輸入:
find . -type f -exec echo {} \;
它兩次調用echo
命令,產生以下輸出:
./abc
./xyz
如果您輸入:
find . -type f -exec echo {} +
然后find
僅調用一次echo
,並顯示以下輸出:
./xyz ./abc
有關更多信息,請鍵入info find
或man find
(如果您的系統上已安裝文檔),或者您可以在http://www.gnu.org/software/findutils/manual/html_node/find_html/在線閱讀該手冊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.