Ačkoli jedním z hlavních důvodů vytváření archivů je snadná manipulace a přenos, někdy je komprimovaný soubor sám o sobě tak velký, že se stává noční můrou přenášet jej po síti, zvláště když je rychlost sítě pomalá.
Co by se tedy mělo dělat v takových případech? Existuje řešení tohoto problému? Ano, jedním řešením je rozdělit komprimovaný soubor na menší části, které lze snadno přenášet po síti. V cíli se k nim můžete připojit a získat původní archiv.
Pokud řešení zní zajímavě a chcete přesně porozumět tomu, jak to lze provést v Linuxu, budete rádi, když budete vědět, že všechny důležité podrobnosti probereme krok za krokem v tomto tutoriálu.
Než budeme pokračovat, vezměte prosím na vědomí, že všechny pokyny a příkazy uvedené v tomto článku byly testovány na Ubuntu 14.04.
Jak rozdělit velké archivy
Existuje nástroj příkazového řádku – nazvaný Split - to vám pomůže rozdělit soubory na části. Na většině linuxových distribucí se instaluje ihned po vybalení, takže ke stažení a instalaci nemusíte provádět žádné další kroky. Následuje syntaxe tohoto příkazu:
split [OPTION]... [INPUT [PREFIX]]
INPUT zde představuje název souboru, který je třeba rozdělit na menší části, a PREFIX je text, který má být uveden před názvem výstupních souborů. OPTION v našem případě bude -b abychom mohli určit velikost výstupních souborů.
Abyste pochopili použití Splitu na příkladu, musíte mít nejprve komprimovaný soubor, který chcete rozdělit. V mém případě jsem měl například následující soubor .zip o velikosti 60 MB:
Zde je příkaz Rozdělit v akci:
Jak tedy můžete vidět, pomocí volby -b jsem požádal příkaz Rozdělit, aby rozdělil velký soubor .zip na stejné části, každý o velikosti 20 MB, přičemž poskytl úplný název komprimovaného souboru a také text předpony.
Zde je návod, jak jsem ověřil, že příkaz Split skutečně provedl to, o co byl požádán:
Jak je patrné z výstupu na snímku obrazovky výše, ve výstupu byly vytvořeny tři soubory s názvy včetně prefixu, který jsem dodal, a každý o hmotnosti 20 MB.
Samozřejmě, že kromě souborů .zip můžete výše zmíněnou metodou rozdělit i jiné typy komprimovaných souborů. Například zde je návod, jak jsem použil stejný příkaz, o kterém jsme hovořili dříve, k rozdělení souboru .tar.xz:
Jak už jste pochopili, pokud chcete soubor rozdělit na více částí, které mají mít velikost v MB, musíte použít písmeno M s číselným údajem, který zadáte na příkazovém řádku. A pokud – jako v případě, o kterém jsme právě hovořili – mají mít soubory velikost v kB, měli byste použít písmeno K .
Doposud jsme používali pouze -b možnost nabízená příkazem Rozdělit; je to proto, že dělá to, co chceme - řekněte příkazu, aby rozdělil vstupní soubor na základě velikosti, která následuje po této možnosti na příkazovém řádku. V závislosti na vašem případu a požadavcích však možná budete chtít použít některé další možnosti, které příkaz Rozdělit poskytuje.
Následuje seznam možností spolu se stručným vysvětlením toho, co dělají:
- -a , --suffix-length=N :generování přípon délky N (výchozí 2)
- --additional-suffix=SUFFIX :přidat další SUFFIX k názvům souborů.
- -b , --bytes=SIZE :vložte SIZE bajtů na výstupní soubor
- -C , --line-bytes=SIZE :vložte maximálně SIZE bajtů řádků na výstupní soubor
- -d , --numeric-suffixes[=OD] :místo abecedních použijte číselné přípony. FROM změní počáteční hodnotu (výchozí 0).
- -e , --elide-empty-files :nevytvářejte prázdné výstupní soubory s '-n'
- --filter=COMMAND :zápis do shellu COMMAND; název souboru je $FILE
- -l , --lines=NUMBER :vložte NUMBER řádků na výstupní soubor
- -n , --number=CHUNKS :generování výstupních souborů CHUNKS.
- -u , -bez vyrovnávací paměti :okamžitě zkopírujte vstup na výstup pomocí '-n r/...'
Až dosud jsme diskutovali pouze o tom, jak rozdělit velký archiv na několik menších částí. Netřeba dodávat, že je to k ničemu, dokud také nevíte, jak je spojit, abyste získali původní komprimovaný soubor. Takže to můžete udělat následovně:
Neexistuje žádný speciální nástroj příkazového řádku, který by spojil menší části, protože tento úkol zvládne starý dobrý příkaz Cat. Zde je například návod, jak jsem načetl Kaku-linux32.zip soubor pomocí příkazu Cat:
Obnovený archiv můžete extrahovat a porovnat jej s původním, abyste ověřili, že se nic nezměnilo.
Závěr
Pokud jste uživatelem Linuxu a vaše každodenní práce zahrnuje hraní si s velkými komprimovanými soubory a jejich sdílení s ostatními po síti, je velká šance, že budete chtít archiv v některých případech rozdělit. Řešení uvedené v tomto tutoriálu samozřejmě nemusí být jediné dostupné, ale určitě je to jedno z nejjednodušších a nejméně náročné.
V případě, že používáte jiný přístup k rozdělení velkých archivů a poté je spojíte zpět a chcete své řešení sdílet s ostatními, můžete tak učinit v komentářích níže.