해당 명령을 사용하여 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
or로 끝나야 하기 때문입니다. 이 구문은 단일 명령에 가능한 한 많은 인수를 전달합니다. 예를 들어 이 구문은 필요한 것일 수 있는 하나의 파일만 인수로 사용하여 각 파일에 대해 새 명령을 실행합니다.+
\;
+
az bicep build file1 file2 file3
\;
쉘과 현재 디렉토리의 파일에 따라 구문 분석을 시도할 수 있으며 *.bicep
대신 안전을 위해 {}
에 전달되어야 합니다 .find
다음 명령은 요구 사항을 충족해야 합니다.
find /folder -name exclude1 -prune -o -name exclude2 -prune -o -name '*.bicep' -print -exec az bicep build '{}' \;