我需要 Gzip 为我正在构建的网络服务器预压缩一些静态文件。我需要 gzip 的所有文件都将位于名为 的文件夹中.cache
。由于某些客户端可能不接受 gzip 压缩的响应,因此我想在 gzip 压缩时保留所有原始文件。是否有任何命令可以用来递归 gzip 文件.cache
夹中的文件,同时仍保留原始文件?如果在已包含 gzip 压缩文件的文件夹上运行此命令,是否会 gzip gzip 压缩文件(已以 .gz 为后缀的文件)?
当我们讨论 gzip 主题时:我一直在寻找一种将 gzip 文本输入传递给 gzip 而不是文件的方法。我想出了在命令上添加破折号的方法(例如gzip -c -
),但我不确定这是否有效或如何使用它。谁能解释一下吗?
答案1
使用该选项-c
将结果输出到stdout
.gzip
中的所有文件.cache
:
for i in .cache/*; do gzip -c "$i" > "$i.gz"; done
编辑:gzip
再次 对他们进行检查,而不是gzip
edgzip
文件检查后缀:
for i in .cache/*; do [ "${i:(-3)}" == ".gz" ] || gzip -c "$i" > "$i.gz"; done
因此,只有不以 结尾的文件.gz
才会被gzip
编辑。