将“查找”结果通过管道传输到 Azure CLI

将“查找”结果通过管道传输到 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命令将返回我正在查找的结果集。

答案1

它返回的原因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 '{}' \;

相关内容