递归 Gziping 文件(并保留原始文件)和 Gziping 文本输入

递归 Gziping 文件(并保留原始文件)和 Gziping 文本输入

我需要 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再次 对他们进行检查,而不是gzipedgzip文件检查后缀:

for i in .cache/*; do [ "${i:(-3)}" == ".gz" ] || gzip -c "$i" > "$i.gz"; done

因此,只有不以 结尾的文件.gz才会被gzip编辑。

相关内容