我看到如下 find 指令,想知道它們之間的差異。
find . -exec COMMAND {} \;
find . -exec COMMAND {} \+
find . -exec COMMAND {} +
答案1
find exec 有兩種語法。
find . -exec [cmd] {} \;
{} 是 find 找到的結果的佔位符
;表示對於每個找到的結果,命令 cmd 都會使用找到的結果執行一次。
執行起來是這樣的:cmd result1;命令結果2; ...;命令結果 N
find . -exec [cmd] {} \+
{} 是 find 找到的結果的佔位符
+ 表示對於所有找到的結果,都會對所有找到的結果執行指令 cmd。
執行方式如下: cmd result1 result2 ... result N
什麼時候我們應該使用 find exec ;除了 + 之外
-exec 執行的工具不接受多個檔案作為參數
一次在如此多的文件上運行該工具可能會佔用太多內存
我們希望盡快開始獲得一些結果,儘管需要更多時間才能獲得所有結果