Ayıklamak
zipinfo
Bu sürecin bir parçası olarak kullanabiliriz , bu zip
paketten bir programdır .
zipinfo -2 example.zip
yalnızca dosya adlarını gösterir, example.zip
şuna benzer:
file1-long-name-...-bla-bla.html
file2-long-name-...-bla-bla.html
tüm dosyaları ayıklamak için bu özelliği kullanabiliriz:
zipinfo -2 example.zip | while read i;
do
long_fname=${i%.*}
unzip -p -c example.zip "$i" > "${long_fname:0:250}.${i##*.}"
done;
long_fname=${i%.*}
: Dosya adının 256 karakterden az olması durumunda uzantıyı uzun dosya adından kaldırır; Yinelenen bir uzantı almayacağız.
${long_fname:0:250}.${i##*.}
: Meşru sayıda karakter ile yeni bir dosya adı oluşturur ayrıca bir .
ve dosya gerçek uzantısı ekler .
Sadece dosya listesine giriyoruz ve her birini 256 karakter olan yeni bir meşru dosya adıyla çıkarıyoruz.
Yeniden adlandırmak için
zipnote
Komutu kullanabilirsiniz , bu da zip
paketin bir parçası .
Önce zip dosyanızın yedeğini alın.
Bu komutu çalıştırın:
zipnote example.zip > names
Adları bir düzenleyici kullanarak açın, şöyle görünür:
@ file name long in zip and a lot of other strings in the file name
@ (comment above this line)
@ (zip file comment below this line)
Bunun gibi yeni dosya adları ekleyin:
@ file name long in zip and a lot of other strings in the file name
@=new short name for above file
@ (comment above this line)
@ (zip file comment below this line)
Sonra dosyaları yeniden adlandırmak için şunu kullanın:
zipnote -w example.zip < names
Hepsini yeniden adlandırdınız, bunu sizin için otomatik olarak yapan basit bir komut dosyası da yazabilirsiniz.
unzip -l <ARCHIVE>
ve isimlerin nasıl kısaltılmasını istersiniz? Çıkartma sırasında arşivin içindeki dizin yapısını korumak istiyor musunuz?