Find
將“查找”結果通過管道傳輸到 Azure CLI
我正在嘗試使用該
find
命令查找特定文件的列表,然後我想將每個文件通過管道傳輸到另一個命令……另一個命令是 Azure CLI 命令行。我嘗試使用以下命令:
find /folder -name exclude1 -prune -o -name exclude2 -prune -o -name *.bicep -print -exec az bicep build {}
但這只會引發錯誤
find: missing argument to -exec
我可以從結果中創建一個數組,
find
然後在 for 循環中使用該數組將每個元素傳遞給az bicep build
命令嗎?順便說一句…沒有
-exec
參數,該find
命令將返回我正在尋找的結果集。
它返回的原因
find: missing argument to -exec
是因為-exec
需要使用+
或終止參數\;
。該+
語法將盡可能多的參數傳遞給單個命令,例如az bicep build file1 file2 file3
. 該\;
語法將為每個文件執行一個新命令,只有一個文件作為參數,這可能是您需要的。根據您的 shell 和目前目錄中的文件,它可能會嘗試解析
*.bicep
和可能{}
,而應該將其傳遞給find
. 為了安全起見,這些也應該被引用。以下命令應該可以滿足您的需要:
find /folder -name exclude1 -prune -o -name exclude2 -prune -o -name '*.bicep' -print -exec az bicep build '{}' \;