dizinleri ve dosya bir dizin sıkıştırma hariç nasıl?

25

Ben, bazı alt dizini ve dosyayı içermeyen bir dizini sıkıştırmam gerekiyor; Bunu kullandım:

zip -r zipfile.zip . -x ".*" -x "app/bower_components" -x "node_modules" -x "*.zip" -x "node_modules"

herhangi bir başarı olmadan; node_modules , ana bilgisayardaki bir klasördeyken bower_components , klasör uygulamasında

    
sordu arpho 05.11.2013 17:34

5 cevap

27

Sadece ne istediğini tahmin ediyorum.

-x ".*"

bir nokta ile başlayan tüm dosyaları hariç tutun

Beğen:

-x .\*

tüm dosyaları hariç tut (dosya adında bir nokta ile)

Beğen:

-x \*.\*

-

-x "app/bower_components" -x "node_modules"

bu dizini ve içindeki tüm dosyaları hariç tutun

Beğen:

-x app/bower_components/\* -x node_modules/\*

-

-x "*.zip"

tüm zip Dosyalarını dışla

Beğen:

-x \*.zip

node_modules öğesini iki kez hariç tutarsınız

    
verilen cevap D-E-N 05.11.2013 19:20
6

Bunun gibi bir şey hile yapmalıdır:

zip -r zipped.zip dir1/ -x */\.* *.git* \.* *.zip *.csv *.json *.rb *.bak *.swp *.back *.merge *.txt *.sh dir1/node_modules/**\* dir1/bower_components/**\* dir1/dist/**.*

Aşağıdaki -x , dışlanacak dizinlerin ve dosya (uzantı) türlerinin bir listesidir.

    
verilen cevap MikeiLL 10.06.2015 18:50
1

Bu Ubuntu 16.04 üzerinde benim için mükemmel çalışıyor:

sudo zip -r /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*" -x "*.cache*" -x "*test*"
    
verilen cevap Tarik 29.07.2017 12:58
1

Dizinin bir git deposu olduğu varsayılırsa (ve bu soruya bakarak, büyük olasılıkla), .gitignore dosyasına dahil etmek istediğiniz dizinleri ekleyebilir ve git archive komutunu kullanarak içeriğinizin dizin:

git archive --format=zip HEAD -o zipfile.zip

Örneğinizde, .gitignore dosyasının şu şekilde görünmesi gerekecekti:

node_modules
app/bower_components
    
verilen cevap jkukul 16.06.2018 16:30
0

her projede node_modules şöyle dursun:

for i in */; do zip -r "${i%/}.zip" "$i" -x "*/\node_modules/*" ; done
    
verilen cevap nils petersohn 26.01.2017 15:36

Etiketlerdeki diğer soruları oku