Saya perlu membuat file zip tersedia untuk semua pengunjung pengguna Windows saya, jadi saya secara naif menghasilkan file zip dengan perintah zip Unix (sebut saja madeinlinux.zip).
Ini berhasil dibuka dengan WinRar atau Winzip, tetapi pengguna saya yang menggunakan file zip standar Windows mengalami kegagalan saat mencoba unzip. (Windows XP)
Saya memampatkan data yang sama menggunakan mekanisme zip bawaan Windows, dan dari sudut pandang Linux, saya tidak dapat melihat perbedaan dalam tipe file:
$ file madeinlinux.zip : Zip archive data, at least v2.0 to extract
$ file madeinwindows.zip : Zip archive data, at least v2.0 to extract
Itu pasti sesuatu yang spesifik untuk file zip yang kompatibel dengan Windows.
Adakah yang tahu?
Jawaban:
Coba dengan:
-9
Mengindikasikan kecepatan kompresi paling lambat (kompresi optimal, mengabaikan daftar sufiks)-y
Simpan tautan simbolis seperti itu di arsip zip, alih-alih mengompresi dan menyimpan file yang dirujuk oleh tautan-r
Jelajahi struktur direktori secara rekursif-q
Mode diamsumber
-r
) dan-r
memungkinkan Anda mengambil semua konten folder7zip adalah alat kompresi sumber terbuka yang bekerja di Linux, FreeBSD, Mac OS X, BeOS, DOS, Amiga dan Windows.
Saya akan sangat merekomendasikannya berdasarkan versi windows.
Ini mendukung
sumber
Satu-satunya hal yang terlihat relevan adalah ini
tapi baca "man zip" di sistem Anda sebelum pergi ke tempat lain ...
sumber
zip -Z
mengatur opsi kompresi.-Z store
adalah yang paling sepele, karena tidak kompres sama sekali. Ini berguna saat Anda menggunakanzip
sebagai alternatif untuktar
, atau saat pemecahan masalah. Dalam hal ini Anda harus mencoba untuk melihat apakah arsip yang tidak terkompresi dapat digunakan dari Windows. Jika itu adalah digunakan, Anda tahu bahwa Anda harus memilih opsi kompresi non-default.sumber
Selain yang disarankan orang lain, perhatikan juga nama file dan direktori Anda karena Windows tidak selalu menyukai lintasan dan nama file Linux. Kadang-kadang juga lolos secara berbeda ketika zip. Contohnya banyak, tetapi yang paling penting adalah file dot (. Dan ..), file dengan hanya perbedaan huruf (nama.txt dan NAME.txt), jalur file absolut (/tmp/file.txt) . Beberapa karakter lain yang diizinkan dalam nama file di Windows dapat menyebabkan masalah ketika Windows Explorer digunakan untuk membuka file. Dalam kasus saya karakter ':' adalah pemecah kesepakatan tetapi butuh banyak pekerjaan untuk mengetahuinya.
Jadi sebelum Anda melanjutkan menggunakan banyak parameter, saya sarankan ikuti prosedur sederhana:
Temukan folder atau file zip Anda.
jalankan: zip -9 -r -k zip-modified-names.zip / path / ke / folder / Anda
Jika ini berhasil, Anda mungkin lebih baik menghapus karakter yang telah dihapus oleh opsi -k dari nama file / direktori Anda coba zipping secara normal. Perhatikan beberapa parameter seperti -k memiliki efek samping. Dalam hal ini -k bertentangan dengan opsi -q (untuk tautan sym).
Juga opsi -k dapat membuat nama file Anda tidak dapat dibaca. Dalam kasus saya, file saya dinamai berdasarkan waktu pembuatan (mis. 10: 55: 39.pdf) untuk memudahkan menemukan catatan yang diperlukan dari arsip, tetapi opsi -k mengubahnya menjadi 105539.pdf yang tidak mudah dibaca oleh pengguna. Karenanya saya mengubah nama menjadi 10_55_39.pdf yang terbuka pada Windows tanpa menggunakan opsi -k tetapi masih dapat dibaca.
sumber
Punya masalah serupa baru-baru ini dengan file yang dihasilkan dari skrip perl. Menemukan bahwa zip windows asli (hanya diuji Windows 7) salah menangani jalur dengan garis miring terkemuka dan menampilkan zipfile kosong. Solusi adalah menghapus garis miring sebelum menambahkan file. Mungkin beberapa versi lintasan penyimpanan file zip perintah linux dengan garis miring terkemuka.
sumber
Berikut ini adalah skrip python yang saya gunakan untuk zip beberapa file. Ini telah diuji di ubuntu dan Vista. Zip yang dihasilkan di Ubuntu terbuka dengan ritsleting Vista.
Saya pikir saya memiliki masalah yang sama di masa lalu dan itu karena format zip tidak ZIP_DEFLATED. Saya tidak yakin. Saya akan periksa itu.
Saya harap ini membantu
sumber
Mungkin ada masalah dalam pemindahan file Anda dari Linux ke Windows. Jika Anda menggunakan FTP, coba tetapkan transfer biner (perintah bin di Windows, sebelum pemindahan file dari Linux ke Windows).
sumber