So schließen Sie Dateien aus einem Zip-Archiv aus

Die einfachste Möglichkeit, viele bestimmte Dateien oder eine Gruppe übereinstimmender Dateien aus einem Zip-Archiv auszuschließen, besteht darin, das in die benutzerfreundliche Oberfläche von Mac OS X integrierte Dienstprogramm zum einfachen Zippen zu überspringen und zur Befehlszeile zurückzukehren, wo sich der mächtige zip-Befehl befindet.

Dies ist aus mehreren Gründen nützlich, aber die Hauptmotivation für diesen Post bezieht sich auf die .DS_Store-Dateien, die zusammen mit den auf einem Mac erstellten Zip-Archiven gebündelt werden, nur um einen anderen Computer zu entpacken, der die Datei entpackt Mac, Windows PC oder Linux. Dies geschieht sowohl mit dem benutzerfreundlichen Zip-Tool als auch mit dem Befehlszeilen-Zip-Dienstprogramm, und das liegt daran, dass das Standardverhalten der Zipping-Tools darin besteht, verborgene Dateien einzubinden, unabhängig davon, ob sie angezeigt werden oder nicht. Das ist nicht unbedingt eine schlechte Sache und in vielen Fällen würde es als nützlich angesehen werden, aber wenn Sie nicht möchten, dass sie oder andere Dateien in Ihren Archiven angezeigt werden, lesen Sie weiter.

Dateien aus einem Zip-Archiv ausschließen

Die Grundlagen des Dateiausschlusses beim Erstellen eines Zip-Archivs sind um das Flag -x herum zentriert, mit dem Dateien aus dem Archiv ausgeschlossen werden, die einem bestimmten Namen oder Muster entsprechen. Am einfachsten wird es so aussehen:

zip archive.zip files -x "ExcludeMe"

Das heißt, Sie könnten eine einzelne Datei ausschließen, sagen sie heißt "Nothanks.jpg"

zip archive.zip images/ -x "Nothanks.jpg"

Lassen Sie uns ein paar spezifische Beispiele behandeln, wo dies nützlich ist.

Schließen Sie .DS_Store-Dateien aus Zip-Archiven aus

Dies verhindert, dass die normalerweise unsichtbaren Mac-Metadaten .DS_Store-Dateien in ein Zip-Archiv aufgenommen werden, die standardmäßig gebündelt sind:

zip -r archivename.zip archivedirectory -x "*.DS_Store"

Wenn das Verzeichnis jedoch Unterverzeichnisse enthält, sollten Sie eine andere Variante dieses Befehls verwenden, um die ds_store-Dateien von Unterverzeichnissen auszuschließen:

zip -r archive.zip directory -x "*/\.DS_Store"

Hinweis: Nicht alle Shells benötigen die Anführungszeichen, damit dieser Befehl ordnungsgemäß funktioniert, aber in der Bash-Shell (der Standard für OS X) müssen Sie die Anführungszeichen zum Ausschließen mit Platzhaltern und Mustern verwenden.

Bestimmte Dateitypen aus einem Zip-Archiv ausschließen

Mit Platzhaltern können Sie auch alle Dateien eines bestimmten Typs ausschließen, indem Sie sich auf die Erweiterung konzentrieren. Mit diesem Befehl wird z. B. ein ganzes Verzeichnis ohne alle JPG-Dateien komprimiert:

zip -r archive.zip directory -x "*.jpg"

Dies könnte für jede Dateierweiterung oder jedes Muster geändert werden, die in einem Dateinamen übereinstimmen.

Schließen Sie das .git- oder .svn-Verzeichnis aus einem Zip-Archiv aus

Zip ein Verzeichnis, minus .git und sein Inhalt:
zip -r zipdir.zip directorytozip -x "*.git*"

Ziehe einen Ordner ohne das .svn-Verzeichnis ein:
zip -r zipped.zip directory -x "*.svn*"

Alle versteckten Dateien aus einem Zip-Archiv ausschließen

Da Muster und Platzhalter verwendet werden können, können Sie auch alle oder alle unsichtbaren Dateien und Ordner ausschließen, indem Sie einem Punkt vorangestellt werden, sei es ein Verzeichnis wie .svn oder eine einzelne Datei wie .bash_profile oder .htaccess.

zip -r archivename.zip directorytozip -x "*.*"

Oder um alle unsichtbaren Dateien von allen Unterverzeichnissen auszuschließen:

zip -r archive.zip directory -x "*/\.*"

Prost auf einen Kommentator in den Macworld Foren für die genaue Syntax zum Ausschluss dieser Dateien aus Unterverzeichnissen.

Letztlich ist dies nur ein weiterer Grund für Power-User, zum Erstellen von Archiven zum Terminal zu springen. Mit leistungsstarken Funktionen wie Wildcard-Unterstützung, Ausschluss und optionalem Passwortschutz für Reißverschlüsse, ist es nur mehr voll ausgestattet, und da es alles auf dem Mac enthalten ist, müssen Sie keine weitere App herunterladen, um die erweiterten Funktionen zu unterstützen.

Und ja, technisch gesehen, wenn Sie entschlossen waren, in der Benutzeroberfläche zu bleiben, könnten Sie Finder- und Spotlight-Suchoperatoren verwenden, um Ordnerinhalte in OS X einzugrenzen, bevor Sie ein Archiv erstellen, oder einfach Alle auswählen und manuell Befehl + Klicken auf jede Datei, um sie nicht einzuschließen. aber das ist wirklich nicht effizient für große Archivierungsoperationen. Somit gewinnt das Terminal für Leichtigkeit, und obwohl es um die Befehlszeile herum zentriert ist, ist es wirklich nicht kompliziert, wenn Sie erst einmal die Grundlagen gelernt haben.