GNU/Linux >> Znalost Linux >  >> Linux

Funkce Bash pro extrahování archivů souborů různých typů

K dispozici je mnoho aplikací pro extrahování různých typů archivních souborů. Pamatovat si všechny možnosti a parametry každého archivačního nástroje by pro vás bylo obtížné. Bez obav! Dnes jsem narazil na jednoduchou funkci Bash pro extrahování archivů souborů různých typů v Linuxu.

Tato funkce Bash dokáže extrahovat většinu běžně používaných archivních formátů, jako je .tar.bz2 , .tar.bz , .bz2 , .rar , .zip a .7z atd. K rozbalení archivního souboru nemusíte používat vlastní archivační aplikaci! Stačí přidat tuto funkci do vašeho souboru ~/.bashrc a zavolat ji pro rozbalení archivních souborů. Automaticky najde a použije vhodný archivační nástroj k extrahování souborů. Není třeba si pamatovat příznaky a možnosti!

Funkce Bash pro extrahování archivů souborů

Otevřete svůj ~/.bashrc soubor v textovém editoru dle vašeho výběru:

$ nano ~/.bashrc

Na konec přidejte následující úryvek:

# Bash Function To Extract File Archives Of Various Types
extract () {
     if [ -f $1 ] ; then
         case $1 in
             *.tar.bz2)   tar xjf $1     ;;
             *.tar.gz)    tar xzf $1     ;;
             *.bz2)       bunzip2 $1     ;;
             *.rar)       rar x $1       ;;
             *.gz)        gunzip $1      ;;
             *.tar)       tar xf $1      ;;
             *.tbz2)      tar xjf $1     ;;
             *.tgz)       tar xzf $1     ;;
             *.zip)       unzip $1       ;;
             *.Z)         uncompress $1  ;;
             *.7z)        7z x $1    ;;
             *)           echo "'$1' cannot be extracted via extract()" ;;
         esac
     else
         echo "'$1' is not a valid file"
     fi
}

Stiskněte Ctrl+o a stiskněte ENTER pro uložení souboru a poté stiskněte Ctrl+ x pro ukončení souboru. Spusťte následující příkaz, aby se změny projevily:

$ source ~/.bashrc

Od této chvíle můžete tuto funkci jednoduše zavolat a extrahovat různé typy archivních souborů.

Například budu extrahovat .7z typ souboru archivu pomocí příkazu:

$ extract archive.7z 

Ukázkový výstup:

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_IN,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz (206A7),ASM)

Scanning the drive for archives:
1 file, 16013693 bytes (16 MiB)

Extracting archive: archive.7z
--
Path = archive.7z
Type = 7z
Physical Size = 16013693
Headers Size = 1204
Method = LZMA:23
Solid = +
Blocks = 1

Everything is Ok                                                               

Folders: 21
Files: 37
Size:       16625007
Compressed: 16013693

Podobně pro extrakci .zip zadejte soubory, příkaz by byl:

$ extract archive.zip 

Před použitím této funkce musíte mít nainstalovaný příslušný správce archivů. Pokud ve vašem systému nejsou nainstalovány žádné podporované archivační nástroje, zobrazí se chybová zpráva jako níže:

$ extract archive.zip 
bash: /usr/bin/unzip: No such file or directory

Původní autor tohoto scénáře není znám. Tento skript je zmíněn na mnoha místech na internetu. Pokud někdo ví, kdo to napsal, dejte mi prosím vědět v sekci komentářů níže. Podrobnosti o autorovi doplním.

Používáte nějaké další skvělé funkce Bash? Sdílejte je prosím prostřednictvím sekce komentářů. Mohlo by to být užitečné pro mě i pro všechny čtenáře.

Související čtení:

  • Přejmenovávejte soubory bez zadávání celého jména dvakrát v systému Linux
  • Tipy pro Bash – Jak cp nebo mv a cd jedním příkazem
  • [Bash Tipy] Jak používat cd a ls v jednom příkazu
  • Jak archivovat soubory a adresáře v Linuxu [část 1]

Linux
  1. Jak vytvořit, extrahovat nebo otevřít soubor RAR v Linuxu?

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

  3. extrahujte jeden soubor z velkého souboru tgz

  1. The Bash ‘?

  2. 10 příkladů příkazů Tar v Linuxu pro vytváření a extrahování archivů

  3. Extrahujte základní název souboru bez cesty a přípony v bash

  1. Bash:Zápis do souboru

  2. Funkce Bash pro nalezení nejnovějšího vzoru pro shodu souborů

  3. Jak extrahovat textovou část binárního souboru v linux/bash?