Không bao gồm thư mục khi nén tệp


11

Tôi đã có một tập lệnh bash làm một cái gì đó như thế này:

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

Thư mục mà nó sao lưu là một kho lưu trữ SVN (nó từng là CVS trở lại trong ngày). Tôi đã không thể lấy nó để loại trừ .svn và nội dung của nó. Cách sạch nhất để loại trừ .svn (đệ quy qua toàn bộ cây) là gì?

Câu trả lời:


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

-x cũng chấp nhận một danh sách loại trừ.

Ngoài ra, tạo một filelist với loại trừ của bạn và thêm chúng ở đó.
Loại trừ.lst:

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

với lệnh:

zip -0 ../backup/backup.zip -r . -x@exclude.lst

-x "*CVS*"không bao gồm bất kỳ tệp hoặc thư mục có tên chứa CVSdưới dạng chuỗi con (ditto for .svn).
Gilles 'SO- ngừng trở nên xấu xa'

2
zip ../backup/backup.zip \
  -x '/CVS/*' -x '*/CVS/*' \
  -x '/.svn/*' -x '*/.svn/*' \
  -x '/Thumbs.db' -x '*/Thumbs.db' \
  -r .

Lưu ý rằng bạn loại trừ mẫu như được đăng là không hoàn toàn đúng, họ loại trừ bất kỳ tập tin hoặc thư mục có tên chứa CVS .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.