2012-12-30 3 views
1

.GZ 나는 *.css.gz, *.js.gz 등의 파일에 모든 HTML, CSS 및 자바 스크립트를 처리하는 지킬 사이트를 제거합니다. 파일이 S3에 업로드와 gzip을 사용하여 제공 될 수 있도록 문제가는 확장

, 나는 gz 확장을 제거해야합니다. 나는 명령 find _site -iname '*.gz'을 실행하면

find: rename: No such file or directory 
make: *** [all] Error 1 

, 나는 gzip으로 압축 된 파일을 모두 볼이 제대로 출력 :

find _site/ -iname '*.html' -exec gzip -n {} + 
find _site/ -iname '*.js' -exec gzip -n {} + 
find _site/ -iname '*.css' -exec gzip -n {} + 
find _site -iname '*.gz' -exec rename 's/\.gz$//i' {} + 

마지막 줄은 실패 : 내 메이크에서

,이이 그들 모두가 존재한다고 말할 수있는 한.

확장을 제거하거나 위의 명령을 수정하여 오류를 방지하려면 어떻게합니까? 내 메이크 파일에서 스크립트의

출처 : http://fusion.dominicwatson.co.uk/2011/09/adding-gzip-to-my-jeyll-setup.html

+1

Linux에서 이름 바꾸기 명령은 'mv'입니다. '이름 바꾸기'와 같은 것은 없습니다. – bmargulies

+0

아, 그게 문제입니다. 나는 Mac OS X을 사용하지만, 같은 효과를 내기 위해'mv '를 어떻게 사용합니까? –

+0

이전 이름에서 새 이름을 계산하고 mv OLD NEW를 실행하는 쉘 스크립트가 필요할 것입니다. 그런 다음 찾기에서 실행하십시오. – bmargulies

답변

3

백업을 확인하고 시도이 :

for f in `find _site -iname '*.gz'`; do 
    mv $f ${f%.gz} 
done 

그건해야합니다 (find 명령에서) 모든 파일을 통해 반복하고 이름 바꾸기 그들 하나씩 하나씩 mv을 사용하십시오. ${f%.gz}은 파일 이름에서 .gz 접미사를 제거합니다.

0

findrename을 실행할 수 없습니다. 시스템에 설치되지 않았기 때문일 가능성이 큽니다.

작동하려면 데비안 파생물을 사용하는 경우 prename 또는 apt-get install perl과 같은 구현이 필요합니다.

+1

답변을 확대하십시오. –