7z im Terminal oder einem Bash-Script nutzen

Das Programm 7z ist ein freies Dateiformat zur komprimierten Archivierung von Dateien, das eine hohe Kompressionsrate bietet und mit 7-Zip von Igor Wiktorowitsch Pawlow eingeführt wurde. 7z kann kostenlos unter www.7-zip.de  heruntergeladen werden.

Die Haupteigenschaften des 7z-Formats:

  • Offene Architektur
  • Hohe Kompressionsrate
  • Starke AES-256 Verschlüsselung
  • Jede Verschlüsselungs-, Konversions- oder Verschlüsselungsmethode kann benutzt werden
  • Dateigrößen bis 16.000.000.000 GB werden unterstützt
  • Unicode-Dateinamen
  • Progressive Kompression
  • Archiv-Header-Komprimierung

7z lässt sich komplett über das Terminal oder aus anderen Programmen heraus steuern.

7Zip-Logo

Damit man das Programm 7z über das Terminal benutzen kann ohne immer den ganzen Pfad mit angeben zu müssen, muss dieser in den Umgebungsvariablen angegeben werden.

  • Klicken Sie dazu auf das Windows Symbol und geben Sie „Pfad“ ein.
  • Klicken Sie auf Systemumgebungsvariablen bearbeiten.
  • Klicken Sie auf den Button Umgebungsvariablen
  • Klicken Sie unter „Systemvariablen“ auf „Path“ und anschließend auf „Bearbeiten“.
  • Klicken Sie auf „Neu“ und geben Sie den Pfad zum installierten 7zip Programm ein. Z.B. „C:\Program Files“ ohne Anführungszeichen.

 

Um eine Auswahl der möglichen Kommandos und Schalter angezeigt zu bekommen, geben Sie im Terminal 7z -h ein.

7z wird wie folgt aufgerufen

7z <command> [<switches>…] <archive_name> [<file_names>…]
[<@listfiles…>]

 

Beispiele zum Aufruf von 7z über das Terminal.

Verzeichnis ohne Verschlüsselung komprimieren

7z a C:\Archiv.7z D:\Projekte\Projekt1

Ein Verzeichnis ohne Verschlüsselung komprimieren und dabei das Verzeichnis RESOURCES und alle res-Dateien nicht berücksichtigen
7z a C:\Archiv.7z D:\Projekte\Projekt1 -xr!*RESOURCES*\ -xr!*.res

Verzeichnis mit Verschlüsselung komprimieren

Sollte das Passwort Leerzeichen enthalten, muss dieses in doppelte Anführungszeichen gesetzt werden.

Das Passwort muss nach Eingabe des Befehls im Terminal eingegeben werden
7z a C:\Archiv.7z D:\Projekte\Projekt1 -p

Das Passwort wird mit dem Befehl übergeben
7z a C:\Archiv.7z D:\Projekte\Projekt1 -p“MeinPasswort“

Das Passwort steht in einer Textdatei die mit dem Befehl eingelesen wird
7z a C:\Archiv.7z D:\Projekte\Projekt1 < passwort.txt

Bei all diesen drei Aufrufen werden die Dateien des 7z Archivs angezeigt wenn man dieses öffnet.
Wenn man diese verbergen will so gibt man den Parameter -mhe=on mit an.

Das Passwort muss nach Eingabe des Befehls im Terminal eingegeben werden
7z -mhe=on -p a C:\Archiv.7z D:\Projekte\Projekt1

Das Passwort wird mit dem Befehl übergeben
7z -mhe=on -pMeinPasswort a C:\Archiv.7z D:\Projekte\Projekt1

Leider funktioniert das nicht wenn man das Passwort aus einer Datei einlesen will.

 

7z Archiv entpacken

Dateien mit vollem Dateipfad entpacken
7z x C:\Archiv.7z

Wenn das Archiv verschlüsselt ist muss das Passwort nach Eingabe des Befehls im Terminal eingegeben werden.
Man kann das Passwort aber auch hier wieder direkt mit übergeben
7z x -pMeinPasswort C:\Archiv.7z

oder das Passwort aus einer Textdatei einlesen lassen
7z x C:\Archiv.7z < passwort.txt

Nur bestimmte Dateien aus dem Archiv entpacken.
Hier werden alle dcu Dateien aus dem Archiv in das Zielverzeichnis entpackt.
Das Zielverzeichnis wird erstellt wenn es nicht existiert.
7z e C:\Archiv.7z -pMeinPasswort -oC:\Hallo\ *.dcu -r

Das selbe noch mal mit der Übergabe des Passwortes aus der Datei passwort.txt
7z e C:\Archiv.7z -oC:\Hallo\ *.dcu -r < passwort.txt

Alle Dateien aus einem Archiv extrahieren und dabei einen bestimmten Dateityp oder eine bestimmte Datei ausnehmen der nicht mit extrahiert wird.
Hier werden alle Dateien außer txt-Dateien extrahiert
7z x Archiv.7z -oC:\Hallo -xr!*.txt

Hier werden alle Dateien außer txt-Dateien und die Datei Hallo.7z extrahiert
7z x Archiv.7z -oC:\Hallo -xr!Hallo.7z -xr!*.txt

Hier werden die Verzeichnisse Temp und Cache nicht mit extrahiert
7z x Archiv.7z -oC:\Hallo -xr!*Temp*\ -xr!*Cache*\

 

Bestimmte Dateien aus Archiv löschen

Hier werden alle dcu-Dateien aus der Archivdatei gelöscht
7z d -pMeinPasswort Archiv.7z *.dcu -r

Alle dcu-Dateien aus der Archivdatei auslesen.
7z l -pMeinPasswort Archiv.7z *.dcu -r

Alle Dateien aus der Archivdatei auslesen und die Werte in Dateien.txt speichern
7z l -pMeinPasswort Archiv.7z > Dateien.txt

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

Kommentar verfassen