폴더의 모든 파일에 대해 명령을 실행하는 방법

폴더의 모든 파일에 대해 명령을 실행하는 방법

ruby예를 들어, 이 트리가 있고 해당 폴더에 있는 모든 스크립트를 실행하고 싶습니다 . 아카이브를 어떻게 통과시킬 수 있나요?한 줄 명령.

./
../
rb-script/
    sample1.rb
    sample2.rb

답변1

(쉘에 따라)

for file in rb-script/*.rb; do ruby "$file"; done

그러면 문제가 해결될 것입니다. 또는 (쉘과 관련이 없다고 생각합니다)

find rb-script -type f -exec ruby "{}" \;

find; 상황에 따라 더 구체적으로 사용할 수 있습니다.

find rb-script -maxdepth 1 -type f -name '*.rb' -exec ruby "{}" \;

일반적으로 말하면, 여러 파일을 허용하면(그리고 파일 수가 셸의 명령줄 인수 최대값보다 적으면) 작동할 것입니다. command <glob-pattern>그러나 그럴지는 의문입니다. (하지만 원하는 작업을 수행하기 위해 래퍼 스크립트를 작성할 수 있습니다.)commandrubyruby-wrapper rb-script/*.rb

답변2

이것이 데몬의 일부인 경우 다음을 사용할 수 있습니다.구성 요소 실행이 명령은 폴더의 모든 항목을 알파벳순으로 실행합니다. 이 명령은 종료 명령을 역순으로 실행해야 하는 경우 특히 유용합니다.

관련 정보