用 gzip 压缩多个文件

用 gzip 压缩多个文件

我有 100 个文件,n1.txt、n2.txt……我想对每个文件进行 gzip 压缩,但不是在同一个文件中——最后我想要有 100 个n*.txt.gz文件。

我怎样在 Linux 中使用 Bash 来实现这一点?

答案1

要压缩所有文件,您可以使用:

gzip n*.txt

n*.txt扩展为所有文件名作为的参数gzip

答案2

虽然 hymie 的回答完美地涵盖了解决方案,但我想提供一种可能更灵活的替代方案,因为它允许您find首先使用命令来检查您的regex匹配项是否符合您的要求,然后再检查gzip文件。

find . -name "*.txt" -exec gzip {} \;

这将从您当前的工作目录中逐个搜索以.txt和结尾的所有文件gzip

gzip可能需要传递:
-v详细
-k保留原始文件的
-9zip 级别(9 压缩程度最高,6 默认)

或者,您可能想要使用pigz大多数发行版中存在的并且是的并行插件gzip

# parallel gzips all text files in the subfolders below command
find . -name "*.txt" -exec pigz -v9 {} \;

摘自这里。

相关内容