我遇到了这个问题,我需要找到具有特定名称的所有文件并将它们全部压缩成一个 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 ...
)。