Cara Mengecualikan File dari Arsip Zip

Cara termudah untuk mengecualikan banyak file spesifik atau sekelompok file yang cocok dari arsip zip adalah dengan melewatkan utilitas zip mudah yang dibangun di UI ramah Mac OS X dan beralih ke baris perintah, tempat perintah zip yang kuat berada.

Ini berguna untuk satu juta dan satu alasan, tetapi motivasi utama untuk posting ini berkaitan dengan file .DS_Store yang dibundel bersama dengan arsip zip yang dibuat pada Mac, hanya untuk mengacaukan mesin lain yang membuka ritsleting file, apakah itu di lain Mac, Windows PC, atau linux. Itu terjadi dengan baik alat zip ramah dan utilitas zip baris perintah secara default, dan itu karena perilaku default zipping tools adalah untuk memasukkan file tersembunyi apakah mereka ditampilkan atau tidak. Itu tidak selalu merupakan hal yang buruk dan dalam banyak kasus itu akan dianggap berguna, tetapi jika Anda tidak menginginkannya, atau file lain dalam hal ini, muncul di arsip Anda, kemudian baca terus.

Tidak termasuk File dari Zip Archive

Dasar-dasar pengucilan file saat membuat arsip zip berpusat di sekitar tanda -x, yang digunakan untuk mengecualikan file dari arsip yang cocok dengan nama atau pola tertentu. Pada dasarnya, ini akan terlihat seperti ini:

zip archive.zip files -x "ExcludeMe"

Berarti Anda dapat mengecualikan satu file, katakan itu bernama "Nothanks.jpg"

zip archive.zip images/ -x "Nothanks.jpg"

Mari kita bahas beberapa contoh spesifik di mana ini berguna.

Kecualikan .DS_Store File dari Zip Archives

Ini akan mencegah metadata Mac yang biasanya tidak terlihat. File DS_Store dari dimasukkan dalam arsip zip, yang dibundel secara default:

zip -r archivename.zip archivedirectory -x "*.DS_Store"

Jika direktori termasuk subdirektori, Anda akan ingin menggunakan variasi lain dari perintah itu untuk mengecualikan file ds_store dari subdirektori juga:

zip -r archive.zip directory -x "*/\.DS_Store"

Catatan: tidak semua shell memerlukan kuotasi agar perintah ini berfungsi dengan benar, tetapi dalam shell bash (default untuk OS X), Anda harus menggunakan tanda kutip untuk mengecualikan dengan wildcard dan pola.

Kecualikan Jenis File Tertentu dari Arsip Zip

Dengan wildcard, Anda juga dapat mengecualikan semua file jenis tertentu dengan berfokus pada ekstensi. Misalnya, perintah ini akan zip seluruh direktori, minus file .jpg apa pun:

zip -r archive.zip directory -x "*.jpg"

Itu dapat dimodifikasi untuk setiap ekstensi atau pola file tertentu yang dicocokkan dalam nama file.

Kecualikan .git atau .svn Directory dari Zip Archive

Zip direktori, minus .git dan isinya:
zip -r zipdir.zip directorytozip -x "*.git*"

Zip folder, tanpa menyertakan direktori .svn:
zip -r zipped.zip directory -x "*.svn*"

Kecualikan Semua File Tersembunyi dari Arsip Zip

Karena pola dan wildcard dapat digunakan, Anda juga dapat mengecualikan salah satu atau semua file dan folder yang tidak terlihat yang dibuat sehingga dengan diawali dengan periode, apakah itu direktori seperti .svn atau file individu seperti .bash_profile atau .htaccess.

zip -r archivename.zip directorytozip -x "*.*"

Atau mengecualikan semua file tak terlihat dari semua subdirektori:

zip -r archive.zip directory -x "*/\.*"

Sorak-sorai kepada seorang komentator di Forum Macworld untuk sintaks yang tepat di tidak termasuk file-file dari subdirektori juga.

Pada akhirnya, ini hanyalah alasan lain bagi pengguna listrik untuk melompat ke Terminal untuk membuat arsip. Dengan fitur canggih seperti dukungan wildcard, pengecualian, dan perlindungan kata sandi opsional dari ritsleting, itu hanya lebih banyak fitur lengkap, dan karena itu semua termasuk di Mac, Anda tidak perlu mengunduh aplikasi lain untuk mendukung fitur-fitur canggih.

Dan ya, secara teknis jika Anda bertekad untuk tetap berada di UI, Anda dapat menggunakan operator pencarian Finder dan Spotlight untuk mempersempit konten folder di OS X sebelum membuat arsip, atau hanya Pilih Semua dan secara manual Command + Klik setiap file untuk tidak disertakan, tetapi itu sangat tidak efisien untuk operasi pengarsipan besar. Dengan demikian, terminal menang dengan mudah, dan meskipun berpusat di sekitar baris perintah, itu benar-benar tidak rumit setelah Anda mempelajari dasar-dasarnya.