an_*
입력 파일 과 실행 파일이 포함된 하위 폴더가 많이 있습니다 run
. 하위 폴더에서 한 번 실행되는 명령줄은 입니다 ./run <an_*
.
내가 원하는 것은 파일이 포함된 모든 하위 폴더를 찾아 an_*
입력으로 실행하는 것입니다. 최선의 선택은 다음과 같습니다. 하지만 그것은 작동하지 않습니다.run
an_*
find -name an_* -execdir ./run <'{}' \;
답변1
find 명령줄에서 입력 리디렉션을 제거하면 <
쉘은 입력을 다음으로 리디렉션하려고 시도합니다.찾다. 원하는 것은 find가 실행하는 명령에서 리디렉션이 발생하는 것입니다. 그러나 find
리디렉션을 수행하는 방법을 모르므로 제공한 명령을 구문 분석하기 위해 셸을 실행하도록 명시적으로 요청해야 합니다. 이 같은:
find -name "an_*" -execdir sh -c "./run < {}" \;