Bir zip arşivi oluştururken dosya dışlamanın temelleri, -x
belirli bir ad veya desenle eşleşen dosyaları arşivden çıkarmak için kullanılan bayrak çevresinde ortalanır . En temelde şöyle görünecek:
zip archive.zip files -x "ExcludeMe"
Tek bir dosyayı hariç tutabileceğiniz anlamına gelir, “Nothanks.jpg” olarak adlandırılır.
zip archive.zip images/ -x "Nothanks.jpg"
Bunun yararlı olduğu birkaç spesifik örneği ele alalım.
.DS_Store Dosyalarını Zip Arşivlerinden Çıkar
Bu, tipik olarak görünmeyen Mac meta veri .DS_Store
dosyalarının, varsayılan olarak paketlenmiş olan bir zip arşivine eklenmesini önler :
zip -r archivename.zip archivedirectory -x "*.DS_Store"
Bununla birlikte, dizin alt dizinler içeriyorsa, ds_store dosyalarını alt dizinlerden çıkarmak için bu komutun başka bir varyasyonunu kullanmak istersiniz:
zip -r archive.zip directory -x "*/\.DS_Store"
Not: Tüm kabuklar bu komutun alıntılarının düzgün çalışmasını gerektirmez, ancak bash kabuğunda (OS X için varsayılan) joker karakterleri ve desenleri hariç tutmak için tırnak işaretleri kullanmanız gerekir.
Bir Zip Arşivinden Belirli Dosya Türlerini Hariç Tut
Joker karakterlerle, uzantıya odaklanarak belirli bir türdeki tüm dosyaları dışlayabilirsiniz. Örneğin, bu komut eksi herhangi bir .jpg
dosyayı ekleyerek bütün bir dizini sıkıştırır :
zip -r archive.zip directory -x "*.jpg"
Bu, bir dosya adında eşleşen herhangi bir belirli dosya uzantısı veya deseni için değiştirilebilir.
.Git veya .svn Dizini bir Zip Arşivinden hariç tut
Bir dizini sıkıştırın, eksi .git
ve içeriği:
zip -r zipdir.zip directorytozip -x "*.git*"
.svn
Dizini eklemeksizin bir klasörü sıkıştırın:
zip -r zipped.zip directory -x "*.svn*"
Tüm Gizli Dosyaları Zip Arşivinden Çıkar
Desen ve joker kullanılabilir olduğundan, ayrıca böyle bir dizin olsun, bir süre öneki olan bunu yapılır herhangi bir veya tüm görünmez dosya ve klasörleri hariç olabilir .svn
veya benzeri bir tek dosya .bash_profile
veya .htaccess
.
zip -r archivename.zip directorytozip -x "*.*"
Veya tüm görünmez dosyaları tüm alt dizinlerden çıkarmak için:
zip -r archive.zip directory -x "*/\.*"
find community-chess/ -path '*/.*' -prune -o -type f -print | zip ~/community-chess.zip -@
) beklenenden daha uzun, ancak iyi çalışıyor. Alt dizinler de dahil edilmiştir, yani +1 ve kabul edilen bir cevap :-)