這個指令有什麼作用?

這個指令有什麼作用?

但問題是這個指令是做什麼的?我知道 find 命令,但關於選項,沒有,例如引號中的表達式以及 -exec 和 ...

find /var -name "[0-9]*test[A-Z]" -exec  {} /root/{}';'

答案1

find /var指示find在目錄中開始搜尋/var

-name "[0-9]*test[A-Z]"find是指示僅傳回與模式相符的文件/資料夾的搜尋模式"[0-9]*test[A-Z]"。如果您不引用搜尋字串,您的 shell 將擴展該搜尋模式並嘗試執行結果。透過引用搜尋模式,您可以將其作為參數傳遞給find /var -name.

-exec...原始問題的部分有一個語法錯誤,它應該是(注意甜點和雛菊評論-exec {} /root/{} ';'之前的空格)。 它指示執行以下參數,其中被替換為 的搜尋結果。通常您還應該引用它們以防止 shell 擴展。';'
find{}find

最後,定義了執行命令時';'該部分應如何處理搜尋結果。指示 find對每個查找結果執行命令。相反,使用該命令時,運行時會擴展所有查找結果。這也必須被引用或轉義,以防止 shell 擴展它並對 進行論證。-exec';'-exec'+'-execfind...-exec

";"一個小例子說明了和之間的區別,"+"如下所示。

[user@localhost test]$ find . -name "[0-9]*test[A-Z]" -exec echo "{}" ";"
./12ltestA
./1ltestA
[user@localhost test]$ find . -name "[0-9]*test[A-Z]" -exec echo "{}" "+"
./12ltestA ./1ltestA

相關內容