Dosyaları yedeklemek için 7 zip'i nasıl kullanırım, ancak bazı dizinleri hariç tutarım


43

Bir dizini yedeklemek için 7-zip kullanmak istiyorum, ancak ".svn" adlı tüm dizinleri (kaynak ağacın herhangi bir yerinde) hariç tutmasını istiyorum. Bunun mümkün olup olmadığını bilen var mı ve bu durumda nasıl?

Yanıtlar:


35

Tüm .svn dizinlerini dışlamak için, -xr!?svn\*anahtarı eklemeniz gerekir.

Örneğin, aşağıdakiler, uygun C:\Project\To\Backupklasörleri hariç tutarak dizinin bir yedeğini oluşturur ?svn:

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

Teşekkür ManiacD ama iş -XR bu alamayan ben -xr çalışırsanız * bana bir hata verir ve svn .svn * hala .svn dışlamak olmaz!?!
Mikael Sundberg

.svn dizininin altındaki her şeyi dışlamak anlamına gelir. svn'den sonra ters eğik çizgi gerekir. -xr!? svn \ *
ManiacD

Endişelenmeyin, başlangıçta da çalışmasını sağlamak için bir sürü sorun yaşadım. 7-zip, -x (-xr yineleme dizini) anahtarını hariç! joker karakter aramasına göre dosya isimlerini içermez. Ters eğik çizgi olmadan? Svn * ie ile eşleşen dosya adlarını dışlamaya çalışıyor. Asvn.log sonunda \ * ile bir dizin eşleşen altında bir şey içermez? svn
ManiacD

Joker karakterlerin nasıl kullanılacağı hakkında ayrıntılar için, 7-Zip ile birlikte gelen yardım dosyasına bakın. Birkaç gün önce benzer bir görevi çözmeme yardım etti. 7-Zip joker karakterleri biraz kullanır ... farklı;)
släcker

3
Eğer genel bir klasör dışlama aramak için buraya tökezlediyseniz, bunun ?"period-svn" ( .svn) ile eşleşeceğini , bu nedenle kullanacağınız klasördeki her şeyi atlamak için SkipMekullanacağınızı unutmayın-xr!SkipMe\*
drzaus

13

.Svn (veya potansiyel olarak _svn) klasörlerini dışlamak için 7-Zip kullanmak yerine , çalışma kopyasını geçici bir klasöre vermek için svn export komutunu (SlikSVN'den svn.exe kullanın ) kullanmanızı öneririm :

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

Sonra 7-Zip'i aşağıdaki gibi kullanın:

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

Sonra hazırlama klasörünü silin.

Yerel çalışma kopyalarımı yedeklemek için yaptığım şey bu.


İhracat ipucu için teşekkürler. TortoiseSVN menüsünde de mevcuttur.
Arnold Spence

12

Bir dosya veya dizin listesini kullanarak 7zipli dosyaları dışlayabilirsiniz:

/path/to7Zip/7z a -bd f:/backup/backup_2009-08-23_daily.zip home \
          '-xr@\path\to\backup_daily_exclude.lst'

Dışlama dosyası şuna benzer:

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

Anahtar -xr ve özellikle "r", dışlama listesinin dizinin her düzeyine tekrarlı olarak uygulandığını belirtir. Biri mutlak, biri özyinelemeli dışlamalar için bir tane dosya hariç tutma listesi kullanmak isteyebilirsiniz. Yukarıdaki, cygwin'de çalışan bir bash betiğindendir.


4

Ne zaman kullandım

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

İstemediğim .git dizini ekleyerek sona erdi.

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

istenen sonucu aldım.


3

Ne zaman kullandım

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

WEB-INF dizini hariç tutulmadı. Diz adından önce yıldız işareti ekleme

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

İstenilen sonucu aldım.


yıldız kısmı en önemli olanıdır. Bu daha fazla oy almalı.
Valerio

0

Benim için, bir grup maven kod dizinini yedeklemeye çalışıyordum ve "hedef" adındaki herhangi bir dizini dışlamak istedim:

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

İlgili hariç tutma parametresi öyleydi -xr!*\target\*.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.