it-swarm.asia

Bagaimana cara menggunakan 7-Zip untuk membuat cadangan file, tetapi mengecualikan beberapa direktori

Saya ingin menggunakan 7-Zip untuk membuat cadangan direktori, tapi saya ingin itu untuk mengecualikan semua direktori bernama ".svn" (di mana saja di pohon sumber). Adakah yang tahu kalau ini mungkin dan dalam kasus itu bagaimana?

43
Mikael Sundberg

Untuk mengecualikan semua direktori .svn, Anda perlu menambahkan -xr!?svn\* switch

Misalnya, yang berikut ini akan membuat cadangan direktori C:\Project\To\Backup tidak termasuk folder yang memenuhi ?svn:

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!?svn\* Project.Zip C:\Project\To\Backup\*
35
ManiacD

Daripada menggunakan 7-Zip untuk mengecualikan folder .svn (atau berpotensi _svn), saya akan merekomendasikan menggunakan perintah svn export (gunakan svn.exe dari SlikSVN ) untuk mengekspor copy pekerjaan ke folder sementara:

svn export C:\Path\To\WC C:\Backup\Staging

Kemudian gunakan 7-Zip sebagai berikut:

7z.exe a "C:\Parth\To\Archive" "C:\Backup\Staging\*" -bd t7z -v2g -r

Kemudian hapus folder pementasan.

Inilah yang saya lakukan untuk membuat cadangan copy pekerjaan lokal saya.

13
Richard Slater

Anda dapat mengecualikan file dengan 7Zip menggunakan daftar file atau direktori:

/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.Zip home \
          '[email protected]\path\to\backup_daily_exclude.lst'

File kecualikan terlihat seperti:

home\Photos\iPod*
home\dhltd\*
BlogMatrix\Sparks\db\*.archive
home\Eclipse\*
.svn

Kuncinya adalah -xr dan khususnya "r" yang mengindikasikan menerapkan daftar pengecualian secara rekursif, untuk setiap tingkat direktori. Anda mungkin ingin menggunakan 2 kecualikan daftar file satu untuk absolut dan satu untuk pengecualian rekursif. Di atas adalah dari skrip bash yang berjalan di cygwin.

12
Tim Desjardins

Ketika saya digunakan

"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\* aufs2-util.tar aufs2-util\*

akhirnya menambahkan direktori .git yang tidak saya inginkan, mengubahnya menjadi

"C:\Program Files\7-Zip\7z.exe" a -r -ttar -xr!?git\ aufs2-util.tar aufs2-util\*

mendapat hasil yang diinginkan.

4
user28989

Ketika saya digunakan

7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!WEB-INF\*

direktori WEB-INF tidak dikecualikan. Menambahkan tanda bintang sebelum nama dir

7z a "D:\codebase\w.7z" "D:\codebase\Edison\otm\Webapp" -t7z -mx0 -xr!*WEB-INF\*

Mendapat hasil yang diinginkan.

3
Ashutosh Jindal

Bagi saya, saya mencoba untuk membuat cadangan banyak direktori kode maven dan ingin mengecualikan direktori apa pun yang bernama "target":

"C:\Program Files\7-Zip\7z.exe" a -r -tzip -y -xr!*\target\* site.Zip C:\code\site\

Parameter kecualikan yang relevan adalah -xr!*\target\*.

0
Kit Menke