如何gzip文件并保留原始扩展名?

时间:2014-05-04 15:00:11

标签: linux bash shell gzip

似乎如果我运行gzip somefile.js,我会将somefile.js.gz作为输出。

但是,我需要保留原始文件扩展名,即somefile.js,我需要在gzipping后保留somefile.js

我该怎么做?

编辑:要清楚,我需要为几十个文件执行此操作,因此我不能只为mv每个文件执行此操作。我只想gzip所有的静态css / js文件,然后将它们上传到我的CDN,所以我可以将它们作为常规的js / css文件提供。

1 个答案:

答案 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.jsfee.css的二进制gzip文件。如果你将它们提供给标准浏览器,那肯定是行不通的!

在尝试之前一定要制作备份副本 - 它很容易被撤销,但你至少可以浪费时间......

编辑:根据gniourf_gniourf

的建议在shell命令中添加引号