
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/**"