Sembolik bağlantılar ve 7zip


18

Bir klasörü .7z arşivine sıkıştırmaya çalışıyorum. Bu klasör, klasör dışındaki bazı diğer öğelere (hem dizinler hem de dosyalar) sembolik bağlantılar içerir.

Görünüşe göre 7zip sadece bağlantının kendisini arşivler ki bu benim istediğim şey değil. 7zip'e, bağlantının kendisini değil, bağlandığı şeyleri arşivlemesini istediğimi söylemenin bir yolu var mı? (Bu fooişaret eden bir symlink adı varsa C:\stuff\foo, C:\stuff\foodizinin 0 baytlık bir symlink yerine foo yerine arşivi içermesini istiyorum .))

Söz konusu dosya ve klasörleri eklemenin dışında makul bir çözüm var mı? Symlinks aracılığıyla başvurulan yaklaşık 10.000 dosya var, bu yüzden hepsini tek tek eklemek saatler sürecek ... Belki içinde gerçek dosyalarla bir hazırlama klasörü oluşturan ve daha sonra bunu 7zip'e geçiren bir program var. Veya sembolik bağlantıları daha iyi işleyen bir arşivleyici.

Windows Vista kullanıyorum. Tüm bağlantılar sembolik bağlantılardır (örneğin mklink link targetve ile oluşturulmuştur mklink /D link target).

DÜZENLE:

dir daha küçük bir test dizini için komut çıkışı:

C:\...>dir
 Volume in drive C is OS
 Volume Serial Number is 0A3D-CD6E

 Directory of C:\...

09/04/2010  18:12    <DIR>          .
09/04/2010  18:12    <DIR>          ..
09/04/2010  18:10               975 real file.txt
09/04/2010  18:11    <SYMLINK>      test file.txt [..\test file.txt]
               2 File(s)            975 bytes
               4 Dir(s)   5,214,355,456 bytes free

7zip ile bunun bir 7z arşivi oluşturmak real file.txtdahil edilir, ancak test file.txt0 bayt dosyası olarak eklenir, ancak bağlı dosya mevcut ve 50KB'dir.


Hangi işletim sistemini kullanıyorsunuz?
Charles Gargent

2
"Windows" etiketi im im kullanarak, iyi windows değil mi ...
Yangın Lancer

1
Tamam, hangi pencereleri kullanıyorsunuz?
Charles Gargent

@Fire Lancer: Genel olarak, metindeki etiketlerden herhangi bir bilgiyi tekrarlamak iyi bir fikirdir. Okuması daha kolay ve herkes etiketlerine bakmıyor (altta oldukları gibi). Ayrıca, etiketler yanlış anlamalara yatkın olabilir. Örneğin, Linux'ta olabilirim ama Windows ile birlikte çalışmak istiyorum, bu yüzden sorumu "windows" olarak etiketliyorum.
sleske

1
Eh, 7z arşiv <SYMLINKD> ve <JUNCTION> dizinleri ancak <SYMLINK> dosyaları değil, bu yüzden tüm dosyalarınızı bir dizine gizlice girip giremeyeceğinizi tahmin edebilirim
hova

Yanıtlar:


13

Görünüşe göre 7zip sadece kendi istediğim gibi olmayan bağlantı arşivler. 7zip'e, bağlantıyı kendisinin değil de bağladığı şeyleri arşivlemesini istediğimi söylemenin bir yolu var mı?

Hayır, görünüşe göre hayır (maalesef). Aslında 7zip'te bunu isteyen bir hata raporu var: http://sourceforge.net/tracker/?func=detail&aid=2846755&group_id=14481&atid=114481 ancak Ağustos 2009'da açıldı ve şu tarihten beri dokunulmadı: - /.

Başarısızlığı, söz konusu dosya ve klasörleri eklemenin dışında, makul bir neden var mı? Symlink aracılığıyla şeyler dahil olmak üzere, 10.000 dosya var, bunların büyük bir kısmı sembolik bağlantılar aracılığıyla, bu yüzden hepsini tek tek eklemek saatler sürecek ...

Yeterli alanınız (ve zamanınız) varsa, sembol bağlantılarını hedefleriyle değiştirerek klasörün kopyasını alabilirsiniz. Örneğin Robocopy ve anahtarını kullanabilirsiniz /sl:

/ sl Hedef yerine sembolik bağlantıyı kopyalar


Not: Sadece Linux inşa olduğunu, notu karışıklığı önlemek için p7zip (7zip bir bağlantı noktası) aynı zamanda bir ikili vardır does destek sembolik bir bağlantı noktaları (anahtara dosyayı arşivleme ). Ancak, Windows'taki 7zip bu anahtara sahip değildir.7z-l


Bu onaylanmış cevap olduğu için, gerçek 7zip'in -lanahtarlayıcı tarafından yapıldığını belirtmek istersiniz . zip ve gzip özel komutlarıyla da yapar.
m3nda

@ erm3nda bu anahtarı nerede görüyorsunuz? Lütfen referans veriniz.
işaretlemek

linux.die.net/man/1/7z l seçeneği vardır ve aynı harfli bir anahtar da vardır. Bu seçeneğin yazılımın Windows sürümünde mevcut olmadığını unutmayın.
m3nda

@ erm3nda: Evet, ama bu 7zip limanı p7zip. İşaret ettiğiniz için teşekkür ederiz; Cevabımı güncelledim.
sleske

Sana da teşekkürler. Windows'un bu özelliği eksik olduğuna inanamıyorum. Windows üzerindeki semboller oldukça farklı olsa bile, çalışmasını sağlamak için neden zor olduğunu anlamayın.
m3nda

-1

Vista ve üstünü kullanıyorsanız sembol bağlantılarını kaldırın ve mklinks ile değiştirin

mklink /D Directory FullPathToRealDirectory

Mklink'in oldukça güçlü olduğunu ve ağ paylaşımlarına ve benzerlerine bağlantılar içerebileceğini unutmayın.

Bu konuda bir karışıklık olduğu için açıklığa kavuşturmama izin verin. Ben OP burada http://en.wikipedia.org/wiki/NTFS_junction_point olarak gösterildiği gibi Kavşaklar hakkında konuştuğunu varsayıyorum . Mklink birleşme yapmaz . DOĞRU sembolik bağlantılar kurar ve kendim denedim ve 7zip onlara mükemmel saygı duyuyor. Ayrıca, mklink sembolik bağlantıları oluşturmak için yönetici olmanız gerekir.

 Directory of C:\temp\t

04/08/2010  04:50 PM    <DIR>          .
04/08/2010  04:50 PM    <DIR>          ..
04/08/2010  04:31 PM    <SYMLINKD>     GB [c:\users\testuser]    <-- created by mklink
04/08/2010  04:50 PM    <JUNCTION>     GB2 [\??\c:\users\testuser] <-- created by junction
04/08/2010  04:29 PM                 8 test.txt

7zip GB'yi arşivleyecek, ancak GB2'yi arşivlemeyecek. EDIT: Aslında daha fazla test 7zip 4.65 sürümünü kullanarak her iki dizin arşivleyeceğini göstermektedir. Yani sorunun ne olduğu hakkında hiçbir fikrim yok.


1
Microsoft API'leri ve mklik ile ilk olarak yapılan tüm orijin simgeleri göz önüne alındığında, bu aynı şeyi yeniden yapmak dışında ne çözüyor?
Ateş Lancer

2
-1 Bu sorunu nasıl çözer? Sadece sembolik bağların nasıl oluşturulacağını açıklıyorsunuz.
sleske

@hova: Evet, hepsi doğru (MS genellikle sadece sembolik bağlantıları "sembolik bağlar" olarak adlandırıyor; kavşaklara asla "sembolik bağlar" denmiyor). Peki bu soru ile nasıl ilişkilidir?
sleske

7zip arşivleri SYMLINKD (mklink) dizinleri!
hova

1
Windows 7'de 7zip v15.14 (64 bit) ile bazı testler yaptım ve 7zip artık dizin simgelerini takip ediyor gibi görünüyor, ancak sadece dosya simgeleri için boş bir dosya saklıyor - ki bu çok yararlı değil.
Bigue Nique
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.