Saya ingin menggunakan 7-zip untuk membuat cadangan direktori, tapi saya ingin mengeluarkan semua direktori bernama ".svn" (di mana saja di pohon sumber). Adakah yang tahu kalau ini mungkin dan dalam kasus itu bagaimana?
Saya ingin menggunakan 7-zip untuk membuat cadangan direktori, tapi saya ingin mengeluarkan semua direktori bernama ".svn" (di mana saja di pohon sumber). Adakah yang tahu kalau ini mungkin dan dalam kasus itu bagaimana?
Jawaban:
Untuk mengecualikan semua direktori .svn, Anda perlu menambahkan -xr!?svn\*
sakelar
Misalnya, yang berikut ini akan membuat cadangan C:\Project\To\Backup
direktori 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\*
?
ini cocok dengan "period-svn" ( .svn
), jadi untuk melewati semua yang ada di folder SkipMe
yang akan Anda gunakan-xr!SkipMe\*
Alih-alih menggunakan 7-Zip untuk mengecualikan folder .svn (atau berpotensi _svn), saya akan merekomendasikan menggunakan perintah ekspor svn (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.
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 \
'-xr@\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.
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.
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.
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 tadinya -xr!*\target\*
.