이것은 매우 기본적입니다. JS 파일의 여러 하위 폴더가 있는 폴더가 있고 해당 폴더에 있는 모든 파일에 대해 Google의 Clojure 컴파일러를 실행하고 싶습니다. 단일 파일을 처리하는 명령은 다음과 같습니다.
java -jar compiler.jar --js filename.js --js_output_file newfilename.js
디렉토리 구조의 모든 JS 파일에서 실행되도록 어떻게 수정할 수 있습니까?
답변1
당신은 그것을 사용할 수 있습니다 find
:
find . -name "*.js" -exec java -jar compiler.jar --js {} --js_output_file new{} \;
답변2
for
특히 파일이 단일 디렉터리(하위 디렉터리 없음)에 있는 경우 간단한 루프를 사용할 수도 있습니다 . 하위 디렉터리와 함께 사용하도록 수정할 수도 있습니다.
재귀 없이:
for filename in ./*.js
do
java -jar compiler.jar --js "${filename}" --js_output_file "new${filename}"
done
또는 동등한 라인으로:
for filename in ./*.js; do java -jar compiler.jar --js "${filename}" --js_output_file "new${filename}"; done
하위 디렉터리로 재귀합니다(GNU bash 4.0 이상이 필요함)(감사합니다.@크리스 탕):
shopt -s globstar
for filename in ./**/*.js; do
java -jar compiler.jar --js "${filename}" --js_output_file "new${filename}"
done