似乎如果我运行gzip somefile.js
,我会将somefile.js.gz
作为输出。
但是,我需要保留原始文件扩展名,即somefile.js
,我需要在gzipping后保留somefile.js
。
我该怎么做?
编辑:要清楚,我需要为几十个文件执行此操作,因此我不能只为mv
每个文件执行此操作。我只想gzip所有的静态css / js文件,然后将它们上传到我的CDN,所以我可以将它们作为常规的js / css文件提供。
答案 0 :(得分:4)
如果真的想要这样做,你可以简单地使用几乎每个shell中存在的for
构造(甚至在cmd.exe上!)。在Bourne或Posix sh
的味道中,它给出了
for file in *.js *.css ; do gzip "$file" ; mv "$file.gz" "$file"; done
在Windows cmd.exe中它应该写(如果你的路径中有一个gzip命令):
for %file in (*.js *.css) do gzip %file && move %file.gz %file
但是 BEWARE :正如其他人警告过的那样,您将拥有名为foo.js
或fee.css
的二进制gzip文件。如果你将它们提供给标准浏览器,那肯定是行不通的!
在尝试之前一定要制作备份副本 - 它很容易被撤销,但你至少可以浪费时间......
编辑:根据gniourf_gniourf
的建议在shell命令中添加引号