GNU/Linux >> Linux Esercitazione >  >> Linux

Una funzione Bash per estrarre archivi di file di vario tipo

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]

Linux
  1. Come creare, estrarre o aprire file RAR in Linux?

  2. Il Bash '?

  3. 10 esempi di comandi Tar in Linux per creare ed estrarre archivi

  4. Come estrarre la parte di testo di un file binario in linux/bash?

  5. estrarre un singolo file da un enorme file tgz

Comando sorgente Bash

Bash:aggiungi al file

Come estrarre (decomprimere) il file tar.xz

Sostituzione di String in Bash

35 Esempi di script Bash

Estrai il file tar.gz in Linux