Bir dizini sıkıştırırken “zip uyarısı: ad eşleşmedi”


19

Yaklaşık 180 GB'lık bir klasör var, onu aşağıdaki gibi sıkıştırmam gerekiyor:

zip -p password /Volumes/GGZ/faster/mybigfolder/* /Volumes/Storage\ 4/archive.zip

Ama diyor ki:

    zip warning: name not matched: /Volumes/Storage 4/archive.zip

Peki bunu nasıl yaparım? Başka bir not, archive.zipyok, ama ben yaratmaya çalışıyorum.


Deneyinzip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas

Yanıtlar:


7

Komutunuz:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

Kılavuz sayfası ( man zip), sahip olmanız gerektiğini gösterir:

zip <options> <archive> <inpath...>

Ayrıca, bunun -riçin "*" kabuk küresi üzerinde özyineleme seçeneği şiddetle tavsiye edilir.


İlgili diğer bir tuzak basit bir yazma hatasıdır (örneğin, komutu bir komut dosyasından diğerine kopyaladıysanız). Örneğin, winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*yanlışlıkla yazabilirsiniz winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*. Ekstra Output.zip... kolayca yapılır!
AlainD

23

Bu hata, dizin ağacındaki sıkıştırılmış sembolik bağlantılardan da kaynaklanabilir.

Bunların doğru hedefleri yoksa (belki de dizin başka bir yere taşındığı veya kopyalandığı için), zip , hedef dosyayı arşivlemek için sembolik bağlantıyı izlemeye çalışır.

-y(Veya --symlinks) seçeneğini kullanarak bundan kaçınabilirsiniz (ve muhtemelen istediğiniz etkiyi elde edersiniz, bu da dosyanın birden çok kopyasını arşivlemez ).


0

Sıkıştırılacak dosyaları eşleştirmek için -rglob ( *) yerine özyinelemeli bayrağı ( ) kullanın . Ayrıca, önce arşiv adını belirtin ve ardından dosyaların listesini verin:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

0

Ayrıca, bu hatayı farklı bir nedenden ötürü -rdeğiştiremiyorum. Ne oldu aşağıdaki bash kodu / değişken ile zip eklemek için dosyaları dayalı

somevar=`ls -1 somedir`

Sorun lssadece geçerli dizinde olduğu gibi dosyaları kapalı listeler ve bu yüzden zipşikayet ediyor (temelde dosyaları zip için mevcut değil çünkü yanlış / geçerli dizine bakmak için söylendi).

Sorununuz buysa, şu şekilde düzeltebilirsiniz:

somevar=`ls -1d somedir/*`

Gördüğünüz gibi -danahtarı kullandım ve ayrıca /*dizin adının sonunda ve sonra dosyalar başarıyla eklendi.

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.