Ci sono così tante applicazioni disponibili per estrarre vari tipi di file di archivio. Ricordare tutte le opzioni e i parametri di ogni strumento di archiviazione sarebbe difficile per te. Nessun problema! Oggi mi sono imbattuto in una semplice funzione Bash per estrarre archivi di file di vario tipo in Linux.
Questa funzione Bash può estrarre i formati di archivio più comunemente usati, come .tar.bz2
, .tar.bz
, .bz2
, .rar
, .zip
e .7z
ecc. Non è necessario utilizzare l'effettiva applicazione di archiviazione per estrarre un file di archivio! Aggiungi semplicemente questa funzione al tuo file ~/.bashrc e chiamalo per estrarre i file di archivio. Troverà e utilizzerà automaticamente lo strumento di archiviazione appropriato per estrarre i file. Non c'è bisogno di memorizzare i flag e le opzioni!
Una funzione Bash per estrarre archivi di file
Apri il tuo ~/.bashrc
file in un editor di testo a tua scelta:
$ nano ~/.bashrc
Aggiungi il seguente snippet alla fine:
# 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 }

Premi Ctrl+o
e premere INVIO per salvare il file, quindi premere Ctrl+
x per uscire dal file. Esegui il comando seguente per rendere effettive le modifiche:
$ source ~/.bashrc
D'ora in poi, puoi semplicemente chiamare questa funzione per estrarre vari tipi di file di archivio.
Ad esempio, estrarrò un .7z
tipo di file di archivio utilizzando il comando:
$ extract archive.7z
Risultato di esempio:
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
Allo stesso modo, per estrarre .zip
digita file, il comando sarebbe:
$ extract archive.zip
Si noti che è necessario aver installato il gestore archivi appropriato prima di utilizzare questa funzione. Se non ci sono strumenti di archiviazione supportati installati sul tuo sistema, riceverai un messaggio di errore come di seguito:
$ extract archive.zip bash: /usr/bin/unzip: No such file or directory
L'autore originale di questo script è sconosciuto. Questo script è menzionato in più punti su Internet. Se qualcuno sa chi ha scritto questo, per favore fatemelo sapere nella sezione commenti qui sotto. Aggiungo i dettagli dell'autore.
Stai usando altre fantastiche funzioni di Bash? Si prega di condividerli tramite la sezione commenti. Potrebbe essere utile per me e per tutti i lettori.
Lettura correlata:
- Rinomina i file senza digitare il nome completo due volte in Linux
- Suggerimenti Bash - Come eseguire cp o mv e cd in un comando
- [Suggerimenti Bash] Come fare cd e ls in un comando
- Come archiviare file e directory in Linux [Parte 1]