我有一个Jekyll网站,可以将所有HTML,CSS和Javascript处理成*.css.gz
,*.js.gz
等文件。
问题是,我需要删除gz
扩展名,以便可以将文件上传到S3并使用GZip进行投放。
在我的makefile中,我有这个:
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' {} +
最后一行失败了:
find: rename: No such file or directory
make: *** [all] Error 1
当我运行命令find _site -iname '*.gz'
时,我看到所有GZipped文件都正确输出,据我所知,它们都存在。
如何删除扩展程序,或修改上述命令以防止错误?
我的Makefile中的脚本来源:http://fusion.dominicwatson.co.uk/2011/09/adding-gzip-to-my-jeyll-setup.html
答案 0 :(得分:3)
进行备份然后尝试:
for f in `find _site -iname '*.gz'`; do
mv $f ${f%.gz}
done
这应该遍历所有文件(来自find命令),并使用mv
逐个重命名。 ${f%.gz}
从文件名中删除.gz后缀。
答案 1 :(得分:0)
find
无法执行rename
,很可能是因为它未安装在您的系统上。
你需要实现它(例如。prename
或apt-get install perl
如果你使用的是Debian衍生物)。