所以我使用亚马逊来提供一些文件。
我想在上传这些文件之前先压缩它们
首先我将模板复制到一个新文件夹中
cp -r templates/ templatesGZIP
然后我 GZIP 那个文件夹
gzip -r templatesGZIP
问题是这会将 .gz 添加到所有文件名中。例如 homeTemplate.html 更改为 homeTemplate.html.gz
运行 gzip -r templatesGZIP 时有什么方法我声明我想保持扩展相同
谢谢
担
gzip
只做一件事,将单个文件转换为 gz 存档。您需要的是一个 tar.gz 文件。你的朋友是tar
,它也可以使用gzip
cp -r templates templatesGZIP
tar czf templatesGZIP.tar.gz templatesGZIP
Backround:tar
还有一件事做得很好:它将目录结构转换为单个文件。上面的tar
命令,解释:
复制目录后
find templatesGZIP -type f ! -wholename *images* -exec gzip {} \; -exec mv {}.gz {} \;
您可以将stdout
用作临时缓冲区并将输出写入您选择的文件中:
gzip -cr templatesGZIP > outputfile.extension
gzip 中没有执行此操作的选项。使用双目录方法,以下应该可以解决问题
for in_file in $(find templates -type f)
do
out_file="templatesGZIP/${in_file#templates/}"
mkdir -p "$(dirname "$out_file")"
gzip -c <"$in_file" >"$out_file"
done
使用这种方法,不需要cp
命令。
这已经过测试。
对此有一条评论 - 很少看到没有扩展名的 gzip 文件。