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 -