GNU/Linux >> Znalost Linux >  >> Linux

Vytvořit archiv dehtu rozdělený na bloky maximální velikosti?

Potřebuji zálohovat poměrně velký adresář, ale jsem limitován velikostí jednotlivých souborů. V podstatě bych chtěl vytvořit tar.(gz|bz2) archiv, který je rozdělen na archivy o maximální velikosti 200 MB. Clonezilla dělá něco podobného tím, že rozděluje zálohy bitových kopií pojmenované takto:

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

Existuje způsob, jak to mohu udělat jedním příkazem? Rozumím, jak používat split příkaz, ale rád bych nemusel vytvářet jeden obří archiv a pak jej rozdělovat na menší archivy, protože by to zdvojnásobilo místo na disku, které bych potřeboval k počátečnímu vytvoření archivu.

Přijatá odpověď:

K příkazu split můžete použít tar:

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

Na některých systémech *nix (jako OS X) se může zobrazit následující chyba:

split: illegal option -- -

V tom případě zkuste toto (všimněte si -b 200m ):

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

Pokud se náhodou pokoušíte rozdělit soubor tak, aby se vešel na disk naformátovaný systémem FAT32,
použijte limit bajtů 4294967295. Například:

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

Chcete-li soubory extrahovat, použijte následující příkaz (jak uvedl @Naftuli Kay):

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

Linux
  1. Vytvořit archiv Tar z adresáře, s výjimkou skrytých souborů?

  2. Jak zkomprimovat více souborů do archivu .xz?

  3. Příklady cpio pro Linux:Jak vytvořit a extrahovat archivy cpio (a archivy tar)

  1. Chyba Tar:Neočekávané EOF v archivu

  2. Jak mohu vytvořit vícedílný soubor tar v Linuxu?

  3. Zrušit archivaci a zároveň zmenšit velikost archivu?

  1. Rozdělení výstupu do nových řádků?

  2. Formát indexovaného archivu?

  3. Komprimovat složku s tar?