7Zip - Komut Satırı: Klasörleri joker desenle dışla?


107

Joker karakterli yolların komut satırı 7zip komutundan nasıl dışlanacağı hakkında bir fikriniz var mı?

Böyle bir şey yapıyorum:

7z.exe a -t7z archive.7z FolderToArchive\ -mx0

ve "FolderToArchive" altında bulunan klasör \bin\*.*veya \obj\*.*klasörleri dışlamak ister .

Dosyaları dışlamak için -xparametreyi kullanabilirsiniz . Yardım dosyası -xşunları kullanmak için bu örneği verir :

7z a -tzip archive.zip *.txt -x!temp.*

Bir dosyayı dışlamak için harika. Ancak yine joker karakterlerle belirtilen bir klasörü dışlamak istiyorum. Benim "FolderToArchive" altında birden fazla klasör var, bu klasörlerin altında olabilir veya olmayabilir bin\ve obj\klasörler var. Bunları arşive dahil etmek istemiyorum.

Gibi kalıp denedim

-x!bin\*
-x!bin\*.*
-x!\bin\*
-x!\bin\*.*
-x!\\bin\\*
-x!\\bin\\*.*

Hiçbiri bin\klasörü dışlamaz . Bu sadece 7zip sınırlaması mı?

Yanıtlar:


131

Bin ve obj klasörlerini tekrar tekrar hariç tutmak için bu komutu kullanabilirsiniz:

7z.exe a -t7z archive.7z FolderToArchive\ -mx0 -xr!bin -xr!obj

5
Diğer herkes için: sadece root dizinindeki dosyaları görmezden gelmek istiyorsan, kullan -xr0!*.zip- en azından ben olmadan çalışamadım r0.
Oliver

6
Ayrıca, eğer bu bir Linux / Unix komut satırındaysa, kabuğun ön işlemlerini '-x!$RECYCLE.BIN'eklememek için , örneğin harici bir sürücünün Geri Dönüşüm kutusunu hariç tutmak için tekli tırnak işaretleri içine almanız gerekebilir .
thanosa75

15

Hatalardan kaçınmak için, -r veya -xr'yi dikkatlice kullanın.

Diyelim ki şöyle bir dizininiz var:

.\path1\path2\bin
.\path1\path2\src
.\path3\path4\path5\bin
.\path3\path4\path5\src

ve komutu çalıştırın:

7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -xr!bin

arşivde ne var.7z:

.\path2\src
.\path5\src

Yani, .\path2\ve .\path5\oldu üstteki klasörü archive.7z içinde ve her iki bindizinleri dışında tutuldu.

-x yalnızca arşivdeki üst klasöre göre yolu / dosya adını destekler .

Bu nedenle, yalnızca hariç tutmak .\path1\path2\bin, ancak diğer tüm 'bin' dizinlerini dahil etmek istiyorsanız , komut şöyle olmalıdır:

7z a -t7z archive.7z .\path1\path2 .\path3\path4\path5 -x!path2\bin

-X'te mutlak yolu kullanmaya çalıştım, ancak başarılı olamadım.


Güncelleme:

-spfMutlak yolla çalışan Linux için 7z'de bir seçenek var .

Göre Marco , -spf15.14 7-zip gelen Windows üzerinde de kullanılabilir


2
Not: En azından Ubuntu'da, tüm bu -x terimlerini '-x!path2\bin'kabuk yerine koymamak için tekli tırnak işaretleri altına almanız tavsiye edilir ... (çok daha uzun, sözdizimsel olarak yanlış "komut" ...)
Frank Nocke

@FrankNocke adlı kullanıcının yorumuna atıf yapmak için, bunu klasör adlarında noktalara izin vermek için pencerelerde de yapabilirsiniz:'-xr!\.foo'
DonBecker
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.