我有一个目录树,其中有一些文件和一些子目录。
/
/file1.txt
/file2.png
/dir1
/subfile1.gif
目标是有一个脚本生成每个文件的 gzip 版本并将其保存在每个文件旁边,并添加.gz
后缀:
/
/file1.txt
/file1.txt.gz
/file2.png
/file2.png.gz
/dir1
/subfile1.gif
/subfile1.gif.gz
这将处理新.gz
文件的创建。
另一部分是删除:每当创建非 gzip 压缩文件时,脚本.gz
在运行时都需要删除孤立版本。
最后也是最棘手的部分是修改:每当更改某些(非 gzip 压缩的)文件时,重新运行脚本将.gz
仅更新那些已更改文件的版本,基于文件mtime
与其 gzip 版本之间的文件时间戳 () 比较。
是否可以在 bash 中实现这样的脚本?
编辑:这样做的目的是为 nginx 准备每个文件的压缩副本,以便使用 gzip_static 模块提供服务。它并不是一个后台服务,一旦发生任何变化,它就会自动压缩,因为 nginx 的 gzip_static 模块足够智能,可以在不存在压缩版本时提供来自未压缩版本的内容,或者如果未压缩版本的时间戳比gzip 版本的时间戳。因此,这是一个偶尔运行的脚本,只要服务器不忙。