Untuk mengekstrak
Kita dapat menggunakan zipinfo
sebagai bagian dari proses ini, ini adalah program dari zip
paket.
zipinfo -2 example.zip
hanya akan menampilkan nama file example.zip
, sesuatu yang terlihat seperti:
file1-long-name-...-bla-bla.html
file2-long-name-...-bla-bla.html
jadi kami dapat menggunakan fitur ini untuk mengekstrak semua file:
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%.*}
: Menghapus ekstensi dari nama file yang panjang, jadi jika nama file kurang dari 256 karakter; Kami tidak akan mendapatkan ekstensi duplikat.
${long_fname:0:250}.${i##*.}
: Membuat nama file baru dengan jumlah karakter yang sah juga menambahkan .
dan mengajukan ekstensi nyata.
Cukup kita beralih ke daftar file dan mengekstrak masing-masing dengan nama file yang sah baru yaitu 256 karakter.
Untuk mengganti nama
Anda dapat menggunakan zipnote
perintah, itu adalah bagian dari zip
paket juga.
Dapatkan cadangan file zip Anda terlebih dahulu.
Jalankan perintah ini:
zipnote example.zip > names
Buka nama menggunakan editor, tampilannya seperti ini:
@ 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)
Tambahkan nama file baru seperti ini:
@ 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)
Kemudian untuk mengganti nama file gunakan:
zipnote -w example.zip < names
Anda mengganti nama mereka semua, Anda juga dapat menulis skrip sederhana yang melakukan ini secara otomatis untuk Anda.
unzip -l <ARCHIVE>
dan bagaimana Anda ingin nama-nama terpotong? Apakah Anda ingin mempertahankan struktur direktori di dalam arsip selama ekstraksi?