Backup

創建一個 tar 歸檔文件,分割成最大大小的塊

  • November 4, 2021

我需要備份一個相當大的目錄,但我受到單個文件大小的限制。我想基本上創建一個tar.(gz|bz2)檔案,該檔案被分成最大 200MB 的檔案。Clonezilla 通過拆分像這樣命名的圖像備份來做類似的事情:

sda1.backup.tar.gz.aa
sda1.backup.tar.gz.ab
sda1.backup.tar.gz.ac

有沒有辦法可以在一個命令中做到這一點?我了解如何使用該split命令,但我不想創建一個巨大的存檔,然後將其拆分為較小的存檔,因為這將使我最初創建存檔所需的磁碟空間增加一倍。

您可以通過管道將 tar 傳遞給 split 命令:

tar cvzf - dir/ | split --bytes=200MB - sda1.backup.tar.gz.

在某些 *nix 系統(如 OS X)上,您可能會收到以下錯誤:

split: illegal option -- -

在這種情況下,試試這個(注意-b 200m):

tar cvzf - dir/ | split -b 200m - sda1.backup.tar.gz.

如果您碰巧嘗試拆分文件以適合 FAT32 格式的驅動器,請使用 4294967295 的字節限制。例如:

tar cvzf - /Applications/Install\ macOS\ Sierra.app/ | \
split -b 4294967295 - /Volumes/UNTITLED/install_macos_sierra.tgz.

當您要提取文件時,請使用以下命令(截至@Naftuli Kay 評論):

cat sda1.backup.tar.gz.* | tar xzvf -

引用自:https://unix.stackexchange.com/questions/61774