dizinleri dışlamak ve bir dizini sıkıştırmak nasıl yapılır?


32

Ben, bazı alt dizini ve dosyayı hariç tutarak 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"

başarı olmadan; node_modulesise asıl birinde bir klasör bower_componentsklasör app içindedir


sonucun nedir ve beklenen sonucun nedir?
DEN

Tüm alt dizinleri mi yoksa yalnızca bir kısmını mı dışlamak istiyorsunuz ?
Sergiy Kolodyazhnyy

Yanıtlar:


36

Ne istediğini tahmin ediyorum.

-x ".*"

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

gibi yap:

-x .\*

tüm dosyaları dışla (dosya adında bir nokta bulunan)

gibi yap:

-x \*.\*

-

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

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

gibi yap:

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

-

-x "*.zip"

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

gibi yap:

-x \*.zip

Node_modules'ı iki kez hariç tutarsınız


2
Teşekkürler, çeşitli mesajlar kullanarak bunu aldım: zip -r * app / * -x \ app / bower_components / * -x \ node_modules / * -x * .zip
arpho

@arpho Yukarıdaki yorumunuz benim için çalışıyor gibi göründüğü gibi bir cevap olmalı ...
chesedo

7

Böyle bir şey hile yapmak gerekir:

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ğıda -x, hariç tutulacak dizinlerin ve dosya (uzantı) türlerinin listesi bulunur.


Şimdi bunun **\*özyinelemeli dışlama için olduğunu biliyorum . Çok teşekkürler.
Duc Tran

6

Dizininizin bir git deposu olduğunu varsayarsak (ve bu soruya bakılırsa, büyük olasılıkla bu), .gitignoredosyaya dışlamak istediğiniz dizinleri ekleyebilir ve dizininizin git archiveiçeriğini sıkıştırmak için komutu kullanabilirsiniz :

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

Örnekte, .gitignoredosya şöyle görünmek zorunda kalacaktı:

node_modules
app/bower_components

3

Bu Ubuntu 16.04'te 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*"

0

her projede bunun gibi node_modules atla:

for i in */; do zip -r "${i%/}.zip" "$i" -x "*/\node_modules/*" ; done
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.