Tôi muốn sử dụng 7-zip để sao lưu một thư mục, nhưng tôi muốn loại trừ tất cả các thư mục có tên ".svn" (bất cứ nơi nào trong cây nguồn). Có ai biết nếu điều này là có thể và trong trường hợp đó như thế nào?
Tôi muốn sử dụng 7-zip để sao lưu một thư mục, nhưng tôi muốn loại trừ tất cả các thư mục có tên ".svn" (bất cứ nơi nào trong cây nguồn). Có ai biết nếu điều này là có thể và trong trường hợp đó như thế nào?
Câu trả lời:
Để loại trừ tất cả các thư mục .svn, bạn cần thêm -xr!?svn\*
khóa
Ví dụ: phần sau đây sẽ tạo bản sao lưu của C:\Project\To\Backup
thư mục không bao gồm bất kỳ thư mục nào thỏa mãn ?svn
:
"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.zip C:\Project\To\Backup\*
?
là để khớp với "period-svn" ( .svn
), vì vậy để bỏ qua mọi thứ trong thư mục SkipMe
bạn sẽ sử dụng-xr!SkipMe\*
Thay vì sử dụng 7-Zip để loại trừ các thư mục .svn (hoặc có khả năng là _svn), tôi khuyên bạn nên sử dụng lệnh xuất svn (sử dụng svn.exe từ SlikSVN ) để xuất bản sao làm việc sang thư mục tạm thời:
svn export C:\Path\To\WC C:\Backup\Staging
Sau đó sử dụng 7-Zip như sau:
7z.exe a "C:\Parth\To\Archive" "C:\Backup\Staging\*" -bd t7z -v2g -r
Sau đó xóa thư mục dàn.
Đây là những gì tôi làm để sao lưu các bản sao làm việc tại địa phương của tôi.
Bạn có thể loại trừ các tệp với 7zip bằng danh sách các tệp hoặc thư mục:
/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.zip home \
'-xr@\path\to\backup_daily_exclude.lst'
Tệp loại trừ trông như:
home\Photos\iPod*
home\dhltd\*
BlogMatrix\Sparks\db\*.archive
home\eclipse\*
.svn
Khóa là -xr và đặc biệt là "r" cho biết áp dụng danh sách loại trừ theo cách đệ quy cho từng cấp của thư mục. Bạn có thể muốn sử dụng 2 loại trừ danh sách tệp một cho tuyệt đối và một cho loại trừ đệ quy. Trên đây là từ một tập lệnh bash chạy trong cygwin.
Khi tôi sử dụng
"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\* aufs2-util.tar aufs2-util\*
cuối cùng tôi đã thêm thư mục .git mà tôi không muốn, đổi nó thành
"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\ aufs2-util.tar aufs2-util\*
có kết quả mong muốn.
Khi tôi sử dụng
7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!WEB-INF\*
thư mục WEB-INF không được loại trừ. Thêm dấu hoa thị trước tên thư mục
7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!*WEB-INF\*
Có kết quả mong muốn.