7zip: Wie schließe ich Dateitypen aus?


9

Ich möchte die folgenden Dateitypen ausschließen:

  • epub
  • pdf
  • html (auch in Großbuchstaben)
  • azw3
  • mobi
  • opf
  • TXT

Ich habe dies bisher, was nicht zu funktionieren scheint. Ich erhalte die Fehlermeldung "Falsche Befehlszeile".

7z e "-x!*.epub" "-x!*.pdf" "-x!*.html" "-x!*.azw3" "-x!*.mobi" "-x!*.txt" "-x!*.HTML" "-x!*.opf" *

Ich habe auch den obigen Befehl ohne doppelte Anführungszeichen ausprobiert.

Ich habe den obigen Befehl mit Informationen von hier (für Windows) erstellt, aber er scheint unter Linux nicht zu funktionieren.

Antworten:


10

7zAkzeptiert nur ein einzelnes Archiv innerhalb seiner Argumente, aber Sie übergeben einen Platzhalter, der den gesamten Inhalt des aktuellen Arbeitsverzeichnisses erweitert. Ein weiteres Problem ist, dass auch die Platzhalter in den Argumenten erweitert werden, entweder ohne oder mit doppelten Anführungszeichen.

Sie sollten also nur ein einziges Archiv pro Befehl extrahieren. Sie sollten den Platzhalter am Ende entfernen, ein einzelnes Archiv angeben und die Argumente in einfache Anführungszeichen setzen:

7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' archive.7z

Um mehrere Archive gleichzeitig zu extrahieren, können Sie jedoch mehrere Methoden verwenden:

  • bash::
for archive in *.7z; do 7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' "$archive"; done
  • find::
find . -maxdepth 1 -type f -iname "*.7z" -exec 7z e '-x!*.epub' '-x!*.pdf' '-x!*.html' '-x!*.azw3' '-x!*.mobi' '-x!*.txt' '-x!*.HTML' '-x!*.opf' {} \;

Ich habe viele Archive, die extrahiert werden müssen, daher die Verwendung des Platzhalters am Ende, um ALLE Archive zu extrahieren.
Daka

@sudoman Bist du sicher, dass dies von unterstützt wird 7z? Möchten Sie es mit einem einzigen Archiv versuchen?
Kos

Getestet stellt sich heraus, dass 7zip die Verwendung eines Platzhalters zur Auswahl mehrerer Dateien in einem bestimmten Verzeichnis nicht zulässt.
Daka

@ Ron Ich stimme zu, aber das Problem hier ist, dass OP nicht mehrere Archive gleichzeitig extrahieren kann; Allerdings hat Ihr Beitrag
kos

@sudoman Ich habe einen weiteren Fehler in Ihrem ursprünglichen Befehl gefunden, und ich habe ein paar Möglichkeiten hinzugefügt, um mehrere Archive gleichzeitig zu extrahieren
kos

10

Von man 7z:

-x[r[-|0]]]{@listfile|!wildcard}
              Exclude filenames

Um Dateien (oder Typen) auszuschließen, können Sie den folgenden Befehl verwenden:

7z a -xr@exclude.txt backup.7z /whatever/dirs/or/files

Beachten Sie -xrstatt -x. Das rzeigt rekursiv an, damit ausgeschlossene Dateien in tiefen Ordnerhierarchien abgeglichen werden können

Die Datei exclude.txtist eine Liste, die durch folgende Zeilenumbrüche getrennt ist:

*.epub
*.pdf
*.html 
*.HTML
*.azw3
*.mobi
*.opf
*.txt

-2

Wenn Sie das vollständige Verzeichnis ausschließen möchten (diese Erweiterungsdatei ist möglicherweise im Verzeichnis getrennt).

 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on ~/bkpFile_$(date +"%d_%b_%Y").1.7z /home/ubuntu/projectfile -mx0 '-xr!vendor' '-xr!view' '-xr!documents' 

Hier wurde das Lieferanten- , Ansichts- und Dokumentenverzeichnis ausgeschlossen.


1
Warum sudo? Und was trägt dies zu den vorhandenen Antworten bei?
Muru
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.