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)?

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

-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 .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.