이 명령을 사용하여 모든 하위 디렉터리의 모든 CSS 파일을 압축해 보았습니다.
find . -iname "*.css*" -exec gzip -c '{}' > '{}'.gz \;
하지만 이는 {}.gz 파일만 생성합니다. 나는 이것을 사용하게되었습니다 :
find . -iname "*.css" -exec sh -c "gzip -c '{}' > '{}'.gz" \;
좋은 결과.
문제는 첫 번째 것이 작동하지 않고 두 번째가 작동하는 이유입니다.
참고: 소스 파일을 보존하기 위해 gzip -k 스위치를 쉽게 사용할 수 있지만 CentOS 7의 gzip은 이를 지원하지 않습니다.
답변1
핵심은 명령이 해석되는 시기와 쉘에 따라 결정됩니다. 첫 번째에서는 명령줄 쉘이 >를 해석하여 find가 시작되기도 전에 로컬 파일을 생성합니다. 두 번째에서는 find가 {}를 대체한 후 서브셸이 이를 수행하므로 예상대로 작동합니다.