GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Eine Bash-Funktion zum Extrahieren von Dateiarchiven verschiedener Typen

Es gibt so viele Anwendungen, um verschiedene Arten von Archivdateien zu extrahieren. Es wäre schwierig für Sie, sich alle Optionen und Parameter jedes Archivierungstools zu merken. Keine Bange! Heute bin ich auf eine einfache Bash-Funktion gestoßen, um Dateiarchive verschiedener Typen in Linux zu extrahieren.

Diese Bash-Funktion kann die am häufigsten verwendeten Archivformate wie .tar.bz2 extrahieren , .tar.bz , .bz2 , .rar , .zip und .7z usw. Sie müssen nicht die eigentliche Archivierungsanwendung verwenden, um eine Archivdatei zu extrahieren! Fügen Sie einfach diese Funktion zu Ihrer Datei ~/.bashrc hinzu und rufen Sie sie auf, um die Archivdateien zu extrahieren. Es wird automatisch das geeignete Archivierungstool finden und verwenden, um die Dateien zu extrahieren. Sie müssen sich die Flags und Optionen nicht merken!

Eine Bash-Funktion zum Extrahieren von Dateiarchiven

Öffnen Sie Ihre ~/.bashrc Datei in einem Texteditor Ihrer Wahl:

$ nano ~/.bashrc

Fügen Sie am Ende das folgende Snippet hinzu:

# 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
}

Drücken Sie Ctrl+o und drücken Sie die EINGABETASTE, um die Datei zu speichern, und drücken Sie dann Ctrl+ x, um die Datei zu verlassen. Führen Sie den folgenden Befehl aus, um die Änderungen zu übernehmen:

$ source ~/.bashrc

Von nun an können Sie diese Funktion einfach aufrufen, um verschiedene Arten von Archivdateien zu extrahieren.

Zum Beispiel werde ich eine .7z extrahieren Archivdateityp mit Befehl:

$ extract archive.7z 

Beispielausgabe:

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

Ebenso zum Extrahieren von .zip type-Dateien wäre der Befehl:

$ extract archive.zip 

Bitte beachten Sie, dass Sie den entsprechenden Archivmanager installiert haben müssen, bevor Sie diese Funktion nutzen können. Wenn auf Ihrem System keine unterstützten Archivierungstools installiert sind, erhalten Sie eine Fehlermeldung wie die folgende:

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

Der ursprüngliche Autor dieses Skripts ist unbekannt. Dieses Skript wird an mehreren Stellen im Internet erwähnt. Wenn jemand weiß, wer das geschrieben hat, lass es mich bitte im Kommentarbereich unten wissen. Ich werde die Details des Autors hinzufügen.

Verwenden Sie andere coole Bash-Funktionen? Bitte teilen Sie sie über den Kommentarbereich. Es könnte für mich und alle Leser nützlich sein.

Verwandte Lektüre:

  • Dateien umbenennen, ohne den vollen Namen zweimal in Linux einzugeben
  • Bash-Tipps - Wie man cp oder mv und cd in einem Befehl erstellt
  • [Bash-Tipps] How To cd und ls in einem Befehl
  • So archivieren Sie Dateien und Verzeichnisse unter Linux [Teil 1]

Linux
  1. Die Bash‘?

  2. Linux-cpio-Beispiele:So erstellen und extrahieren Sie cpio-Archive (und tar-Archive)

  3. Extrahieren Sie den Basisnamen der Datei ohne Pfad und Erweiterung in Bash

  4. Bash-Funktion, um das neueste Dateiübereinstimmungsmuster zu finden

  5. Wie extrahiert man den Textteil einer Binärdatei in Linux/Bash?

Bash-Quellbefehl

Bash:An Datei anhängen

So extrahieren (entpacken) Sie die tar.xz-Datei

Ersetzen von Zeichenfolgen in Bash

35 Bash-Skriptbeispiele

Extrahieren Sie die tar.gz-Datei unter Linux