bagaimana cara mengecualikan direktori dan file zip direktori?


32

Saya perlu zip direktori tidak termasuk beberapa subdirektori dan file; Saya menggunakan ini:

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

tanpa keberhasilan; node_modulesadalah folder dalam folder utama saat bower_componentsberada di dalam aplikasi folder


apa hasil Anda dan apa hasil yang Anda harapkan?
DEN

Anda ingin mengecualikan semua subdirektori atau hanya sebagian saja?
Sergiy Kolodyazhnyy

Jawaban:


36

Saya hanya menebak apa yang Anda inginkan.

-x ".*"

kecualikan semua file yang dimulai dengan titik

lakukan seperti:

-x .\*

kecualikan semua file (dengan titik pada nama file)

lakukan seperti:

-x \*.\*

-

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

kecualikan direktori ini dan semua file di dalamnya

lakukan seperti:

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

-

-x "*.zip"

kecualikan semua File zip

lakukan seperti:

-x \*.zip

Anda mengecualikan node_modules dua kali


2
terima kasih saya mendapatkannya, menggunakan berbagai pos tiba untuk itu: zip -r * app / * -x \ app / bower_components / * -x \ node_modules / * -x * .zip
arpho

@arpho Komentar Anda di atas harus menjadi jawaban karena tampaknya berfungsi untuk saya ...
chesedo

7

Sesuatu seperti ini harus melakukan trik:

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/**.*

Berikut -xadalah daftar direktori dan jenis file (ekstensi) untuk dikecualikan.


Sekarang saya tahu **\*adalah untuk pengecualian rekursif. Terimakasih banyak.
Duc Tran

6

Dengan asumsi direktori Anda adalah repositori git (dan menilai dari pertanyaannya, kemungkinan besar adalah), Anda dapat menambahkan direktori yang ingin Anda kecualikan ke .gitignorefile dan gunakan git archiveperintah untuk membuka isi direktori Anda:

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

Dalam contoh Anda, .gitignorefile harus terlihat seperti ini:

node_modules
app/bower_components

3

Ini berfungsi sempurna untuk saya di Ubuntu 16.04:

sudo zip -r /home/user/backup/$(date +"%Y-%m-%d")/home_user.zip /home/user -x "*backup*" -x "*.cache*" -x "*test*"

0

di setiap proyek lewati node_modules seperti ini:

for i in */; do zip -r "${i%/}.zip" "$i" -x "*/\node_modules/*" ; done
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.