Unix: Zip-Ordner ignoriert Ordnerstruktur und schließt ein Unterverzeichnis aus

Unix: Zip-Ordner ignoriert Ordnerstruktur und schließt ein Unterverzeichnis aus

Ich möchte eine ZIP-Datei erstellen, die die Ordnerstruktur ignoriert und den Inhalt eines bestimmten Unterordners ausschließt.

Ich habe versucht:

zip -rj /path/to/target.zip /path/to/source -x "/path/to/source/subfolder/*"

Es funktioniert nicht, Zip gibt die Meldung zurück:

ZIP-Fehler: Nichts zu tun! (/Pfad/zu/Ziel.zip)

Antwort1

Auszug ausman 1 zip

[...] ein Eingabemuster wie

       /foo/bar/*

normalerweise würde beide Pfade übereinstimmen, das * entspricht dir/file1.c und file2.c. Beachten Sie, dass im ersten Fall bei der Übereinstimmung eine Verzeichnisgrenze (/) überschritten wurde. Mit -ws werden keine Verzeichnisgrenzen in die Übereinstimmung einbezogen, wodurch Platzhalter lokal auf einer bestimmten Verzeichnisebene sind. Wenn -ws aktiviert ist, würde also nur der zweite Pfad übereinstimmen.

Wenn Sie -ws verwenden, verwenden Sie ** zum Abgleichen über Verzeichnisgrenzen hinweg, wie es * normalerweise tut.

Dies gilt auch bei der Verwendung-x

Verdoppeln Sie also für Ihren Zweck das *Ausschlussmuster, wenn es sich um ein Verzeichnis handelt:

zip -rj /path/to/target.zip /path/to/source -x "/path/to/source/subfolder/**"

verwandte Informationen