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]