Bir zip dosyasındaki dizinleri çalışma dizinim yerine hedef dizine göre nasıl yaparım


25

Zip komutunu dizini değiştiremediğim bir komut dosyasından arıyorum. data/kit123/İçindeki verilerin bulunduğu dizinden içeriğin bir zip dosyasını yapmam gerekiyor , ancak zip içeriğinin yalnızca kit123göreceli yollarla içeriği olmasını istiyorum kit123.

Bu dizin yapısı

myworkingdir
    data
        kit123
            kitpart1
                file.xcf
                anotherfile.xcf
            kitpart2
                ...
        kit124
            ...

Komut dosyası myworkingdir içinde çalışıyor ve dizinleri değiştiremiyor.

Ararsam

zip -r kit123.zip data/kit123

daha sonra zip dosyasındaki yapı olacaktır.

data
    kit123
        kitpart1
            file.xcf
            anotherfile.xcf
        kitpart2

ama olmasını istiyorum

kit123
    kitpart1
        file.xcf
        anotherfile.xcf
    kitpart2

Bunu gerçekleştirmek için kullanabileceğim bir zip seçeneği var mı? Çalışma dizinime bağlı olması garip görünüyor

-J olmadığını biliyorum. bu kit123 içindeki yapıyı yok eder


Bah, nevermind Dir (Python'da) nasıl değiştirebileceğimi çözdüm. Zip'in yine de böyle bir seçeneği olup olmadığını hala bilmek istiyorum.
Nathan

Yanıtlar:


18

Yorumlarda not ettiğiniz gibi, artık betiğinizle dizini nasıl değiştireceğinizi biliyorsunuz, zip ile ilgili yollara ilişkin durumu açıklayacağım.

Bu terminali ve açmak için muhtemelen en kolay cdiçin kit123; hedef dizini çalışma dizininiz haline getirmeniz gerekir - komutu ana dizininizin tabanından çalıştıramazsınız veya tüm yollarını seçer /home/$USER/..Eğer -jseçeneği kullanırsanız, tüm yolları çıkarır, olduğu gibi --stripfarklı yol kaldırma düzeylerinin belirtilebildiği tar seçeneğinin eşdeğeri değil .

Bu nedenle, lütfen hedef dizininize cd kit123girin ( ) ve şunu girin:

zip -r kit123.zip *

Bu özyinelemeli olarak ( -r) *, geçerli dizindeki ( kit123) tüm ( ) dosyaları ve dosyaların dizinlerini -pkorur ve -jseçenek bulunmadıkça göreceli yollar ( ) otomatik olarak korunur , dizin yapısı istediğiniz gibi olur. Kit123ve alt klasörler ( kitpart1) kendi dosyalarıyla birlikte sunulacak:

kit123
    kitpart1
        file.xcf
        anotherfile.xcf
    kitpart2

Zip dosyasının içeriğini ile kontrol edebilirsiniz unzip -l zipfile.zip.

İçin mevcut diğer seçenekler hakkında daha fazla bilgi için zipbkz . Çevrimiçiman zip ve Ubuntu kılavuz sayfası .

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.