GNU/Linux >> Znalost Linux >  >> Linux

Jak rozdělit velký archivní soubor na několik malých souborů pomocí příkazu Split v systému Linux

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.


Linux
  1. Jak provádět řádkové porovnání souborů v Linuxu pomocí příkazu diff

  2. Jak rozdělit jeden soubor do více souborů na základě řádků

  3. Jak přejmenovat více souborů najednou v Linuxu

  1. Jak rozdělit iso nebo soubor pomocí příkazu „split“ v Linuxu

  2. Jak vytvořit řídké soubory v Linuxu pomocí příkazu „dd“.

  3. Jak komprimovat a dekomprimovat soubory .bz2 v Linuxu pomocí příkazu bzip2

  1. Jak rozdělit velký archiv „tar“ na více souborů určité velikosti

  2. Jak rozdělit a kombinovat soubory z příkazového řádku v Linuxu

  3. Jak třídit soubory v Linuxu pomocí příkazu Sort