如何将文件夹中的文件递归 bzip2 压缩为单个 bz2 文件

如何将文件夹中的文件递归 bzip2 压缩为单个 bz2 文件

我遇到了这个问题,我需要找到具有特定名称的所有文件并将它们全部压缩成一个 zip 文件。

我厌倦了这样的事情

find . -not -name "*bz2" -name "myname*"  -exec bzip2 test.bz2 {} +;

and

find . -not -name "*bz2" -name "myname*"  -exec bzip2 test.bz2 {} /;

以及许多其他文件,但它总是将它们分开压缩。需要将其压缩为 bzip 文件。

答案1

Bzip 无法将多个文件合并为一个存档(如 ZIP)。Bzip 仅用于压缩单个文件(如 Gzip)。

如果要在压缩档案中包含多个文件,请先使用 Tar 创建多个文件的档案,然后对该单个档案进行 bzip 压缩。

您可以使用:

 find . -not -name "*bz2" -name "myname*" | xargs tar -jcvf archive.tar.bz2 

xargs将会把找到的所有文件名放在 Tar 命令之后(tar 的正常语法是tar -jcvf archivename.tar.bz2 file1 file2 file3 ...)。

相关内容