Linux 命令行:以 gzip 压缩版本递归覆盖每个文件?

Linux 命令行:以 gzip 压缩版本递归覆盖每个文件?
______________ myFolder

我可以用 _____________ 替换什么来以递归方式 gzip 从 myFolder 开始压缩每个文件,并让 gzip 覆盖该文件(将 gzip 文件重命名为原始文件名)?

答案1

你也可以尝试

 find myFolder -type f -exec gzip {} \; -exec mv {}.gz {} \;

答案2

尝试:

find myFolder -type f -exec gzip {} +

答案3

一个简单但不太优雅的 bash 脚本就是简单地 cd in,循环中对它们全部进行 gzip 压缩,然后将它们 mv 回来(默认情况下,gzip 会删除未压缩的文件):

#!/bin/bash
cd myFolder
for f in `find ./ -type f`
do
    gzip $f
    mv $f.gz $f
done

将其放入名为“gzip_and_rename.sh”的文件中,例如 chmod -775 并像 ./gzip_and_rename.sh 一样运行它(如果从 myFolder 内部运行,请从脚本中删除“cd myFolder”行)。

相关内容