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]