find 명령으로 찾은 각 파일에 대해 이 java 명령이 작동하도록 하려면 어떻게 해야 합니까?

find 명령으로 찾은 각 파일에 대해 이 java 명령이 작동하도록 하려면 어떻게 해야 합니까?

Bash 쉘 스크립트 안에 이 명령이 있는데, 그 목적은 java 명령을 적용하는 것입니다.HTML압축기, 디렉토리에 있는 각 HTML 파일에:

find $DIR -type f -name '*.html' -exec java -jar $BASEDIR/Upload/htmlcompressor-1.5.3.jar --remove-intertag-spaces {} \;

그러나 명령줄의 출력은 각 파일을 찾아 해당 파일로 작업을 수행하고 있음을 나타내는 것처럼 보이지만 실제로 결과를 파일에 기록하는 것은 아닙니다.

htmlcompressor 문서에 따르면 사용법은 다음과 같습니다.

사용법: java -jar htmlcompressor.jar [옵션] [입력]

그래서 마지막에 명명된 입력 파일이 있어야 하는데 find명령이 이를 처리하는 줄 알았습니다. 하지만 그것에 대해서는 내가 틀린 것 같습니다.

내가 찾은 파일에 실제로 작동하도록 하려면 어떻게 해야 합니까?

답변1

귀하가 제공한 내용이 올바른 것 같습니다. 다음 명령을 java삽입하여 올바르게 호출되고 있는지 확인할 수 있습니다 .echo

find $DIR -type f -name '*.html' -exec echo java -jar $BASEDIR/Upload/htmlcompressor-1.5.3.jar --remove-intertag-spaces {} \;

(표준에 내장되지 않은 쉘 내장 버전이 있는 POSIX 호환 시스템이 적절하다고 가정 PATH).

그 외에도 결과 명령 중 하나를 수동으로 실행하여 올바르게 작동하는지 확인할 수도 있습니다.

관련 정보