Ausschließen eines Verzeichnisses beim Komprimieren von Dateien

11

Ich habe ein Bash-Skript, das ungefähr so ​​funktioniert:

zip -0 ../backup/backup.zip \
-r ./* \
-x \*CVS\* \
-x *Thumbs.db* \

Das Verzeichnis, das gesichert wird, ist ein SVN-Archiv (früher war es CVS). Ich konnte es nicht dazu bringen, .svn und seinen Inhalt auszuschließen. Was ist der sauberste Weg, um .svn auszuschließen (rekursiv durch den gesamten Baum)?

wedeln
quelle

Antworten:

8
zip -0 ../backup/backup.zip -r . -x "*CVS*" "*Thumbs.db*" "*.svn*"

-x akzeptiert auch eine Liste von Ausschlüssen.

Alternativ können Sie eine Dateiliste mit Ihren Ausschlüssen erstellen und dort hinzufügen.
Die exclude.lst:

*CVS*
*Thumbs.db*
*.svn*
exclude.lst

mit dem Befehl:

zip -0 ../backup/backup.zip -r . -x@exclude.lst
wedeln
quelle
-x "*CVS*"schließt alle Dateien oder Verzeichnisse aus, deren Name CVSals Teilzeichenfolge enthält (dito für .svn).
Gilles 'SO - hör auf böse zu sein'
2
zip ../backup/backup.zip \
  -x '/CVS/*' -x '*/CVS/*' \
  -x '/.svn/*' -x '*/.svn/*' \
  -x '/Thumbs.db' -x '*/Thumbs.db' \
  -r .

Beachten Sie, dass Ihre Ausschlussmuster, wie sie veröffentlicht wurden, nicht ganz richtig sind. Sie schließen alle Dateien oder Verzeichnisse aus, deren Name enthält CVS .

Gilles 'SO - hör auf böse zu sein'
quelle