Menekan ekstraksi direktori __MACOSX saat unzipping

5

Arsip ZIP yang diproduksi pada sistem Mac OS X biasanya menyertakan __MACOSXdirektori yang tidak berguna, menjengkelkan, dan tidak diinginkan pada hampir semua OS lainnya.

Untuk membongkar arsip ZIP saya menggunakan Info-ZIP , yang saya pikir adalah unzipper default pada sebagian besar distribusi Linux. Apa cara terbaik untuk memiliki Info-ZIP yang unzipselalu dan secara otomatis menekan ekstraksi __MACOSXdirektori mana pun yang mungkin ada?

Menurut unziphalaman manual, -xopsi dapat digunakan untuk mengecualikan direktori dari pemrosesan, dan memang menambahkan -x __MACOSX/*ke akhir unzipbaris perintah saya melakukan trik. Tapi saya tidak mau harus mengetik ini setiap saat. Halaman manual juga mengatakan bahwa opsi baris perintah dapat dibaca dari UNZIPvariabel lingkungan, tetapi tampaknya ini hanya berfungsi untuk opsi-opsi yang datang sebelum nama arsip (padahal -xharus datang setelah itu):

$ export UNZIP="-x __MACOSX/*"
$ unzip foo.zip
unzip:  cannot find or open __MACOSX, __MACOSX.zip or __MACOSX.ZIP.

Apakah ada solusi yang lebih baik daripada membungkus unzipskrip shell yang secara otomatis menambah -x __MACOSX/*akhir baris perintah?

Psychonaut
sumber

Jawaban:

8

Gunakan fungsi shell:

myunzip() {
    unzip "$@" -x '__MACOSX/*'
}

myunzip foo.zip
Barmar
sumber
Solusi yang sangat baik! Terima kasih! Namun, saya memodifikasi milik saya: fungsi saya dipanggil unzip, dipanggil /usr/bin/unzipdan argumen pertama adalah $@. Dengan begitu, kebiasaan saya untuk menelepon unziptetap tak tersentuh dan $@lolos dari pertengkaran. Saya tidak tahu apa "@$".
Vedran Šego
Itu salah ketik untuk $@.
Barmar