
我遇到這個問題,我需要找到具有特定名稱的所有檔案並將它們全部壓縮到一個 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 ...
)。