Ich versuche, ein Verzeichnis zu komprimieren (unter Unix über SSH), muss jedoch einige Unterverzeichnisse (und alle darin enthaltenen Dateien und Verzeichnisse) ausschließen.
Bisher habe ich das:
zip -r myarchive.zip dir1 -x dir1/ignoreDir/**/*
Das scheint aber nicht zu funktionieren.
Ich habe es auch versucht
zip -r myarchive.zip dir1 -x dir1/ignoreDir1/* dir1/ignoreDir2/*
Dies schließt jedoch weiterhin Unterverzeichnisse in ignoreDir1 und ignoreDir2 ein.
Die Unterverzeichnisstruktur in den Verzeichnissen, die ich ausschließen möchte, ist ziemlich umfangreich, sodass ich nicht einfach jedes Verzeichnis zum Argument -x hinzufügen kann.
Weiß jemand, wie man das macht?
Antworten:
Ich war so nah!
Der eigentliche Befehl, den ich brauche, ist:
quelle
Für mein spezielles System musste ich, um ein Verzeichnis auszuschließen, meine ausgeschlossenen Verzeichnisse in Anführungszeichen setzen und es funktionierte wie ein Zauber:
Anmerkungen:
- Dies schloss sowohl das auszuschließende Verzeichnis als auch alle darin enthaltenen Dateien aus.
- Sie müssen den vollständigen Pfad zu den Verzeichnissen verwenden, die Sie ausschließen möchten!
quelle
zip
, und erhält eine Liste von Pfade zu Einträgen in den angegebenen Verzeichnissen, aber keine Pfade zu Dateien in deren Unterverzeichnissen, wodurch veranlasst wirdzip
, nicht alles in den angegebenen Verzeichnissen zu ignorieren.@sulman mit:
enthält weiterhin den Ordner dir1 / ignoreDir1 / empty im ZIP-Archiv.
Wenn Sie dies tun möchten, können Sie auch ein führendes ** verwenden, um in Unterordnern zu suchen, anstatt nur in dir1
quelle
Folgendes wird genügen
Wofür hast du das
**
gebraucht, @sulman?Es funktioniert wie ein Zauber für mich wie folgt:
quelle
Genau wie andere Antworten, aber Verzeichnisse vollständig ausschließen, anstatt den gesamten Inhalt von Verzeichnissen auszuschließen:
quelle
Ich fand, dass dies von David R Heffelfinger funktioniert :
Es schloss das Verzeichnis und seinen Inhalt aus.
quelle
dir1
undignorDir2
ein Schrägstrich. Meinen Sie, dass die anderen Backslashes Backslashes sind? Wenn ja, dann haben Sie gerade die Antwort von FuzzyBee von vor zwei Jahren kopiert.Bei mir hat gearbeitet: zip -9 -r ~ / folded.zip online -x ordner / ordner2 / ordner3 / foldern / \ * .
Scheint so zu sein, dass das Sternchen maskiert werden muss.
quelle