Mengecualikan direktori saat membuat zip file

11

Saya punya skrip bash yang melakukan sesuatu seperti ini:

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

Direktori yang dicadangkannya adalah arsip SVN (dulu CVS dulu). Saya tidak bisa mendapatkannya untuk mengecualikan .svn dan isinya. Apa cara paling bersih untuk mengecualikan .svn (secara rekursif melalui seluruh pohon)?

mengibaskan
sumber

Jawaban:

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

-x juga menerima daftar pengecualian.

Atau, buat daftar file dengan kecualikan Anda dan tambahkan di sana.
Yang mengecualikan.lst:

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

dengan perintah:

zip -0 ../backup/backup.zip -r . -x@exclude.lst
mengibaskan
sumber
-x "*CVS*"mengecualikan semua file atau direktori yang namanya berisi CVSsebagai substring (ditto for .svn).
Gilles 'SANGAT berhenti menjadi jahat'
2
zip ../backup/backup.zip \
  -x '/CVS/*' -x '*/CVS/*' \
  -x '/.svn/*' -x '*/.svn/*' \
  -x '/Thumbs.db' -x '*/Thumbs.db' \
  -r .

Perhatikan bahwa pola kecualikan Anda sebagai diposting tidak tepat, mereka mengecualikan file atau direktori mana pun yang namanya berisi CVS .

Gilles 'SANGAT berhenti menjadi jahat'
sumber