Estoy tratando de comprimir un directorio (en Unix a través de SSH) pero necesito excluir un par de subdirectorios (y todos los archivos y directorios dentro de ellos).
Hasta ahora tengo esto:
zip -r myarchive.zip dir1 -x dir1/ignoreDir/**/*
Sin embargo, eso no parece funcionar.
También intenté
zip -r myarchive.zip dir1 -x dir1/ignoreDir1/* dir1/ignoreDir2/*
Sin embargo, eso todavía incluirá subdirectorios dentro de ignoreDir1 e ignoreDir2.
La estructura del subdirectorio en los directorios que quiero excluir es bastante sustancial, por lo que no puedo simplemente agregar cada directorio al argumento -x.
¿Alguien sabe como hacer esto?
Respuestas:
¡Yo estaba tan cerca!
El comando real que necesito es:
fuente
Para mi sistema particular para excluir un directorio, tuve que poner comillas alrededor de mis directorios excluidos y funcionó de maravilla:
Notas:
- esto excluyó tanto el directorio para excluir como todos los archivos dentro de él.
- ¡Debe usar la ruta completa a los directorios que desea excluir!
fuente
zip
, lo que recibirá una lista de rutas a entradas en los directorios especificados, pero no rutas a archivos dentro de subdirectorios de esas, lo que hacezip
que no ignore todo lo que se encuentra debajo de los directorios dados.Lo siguiente hará
¿Para qué necesitabas
**
, @sulman?Funciona como un encanto para mí de la siguiente manera:
fuente
@sulman usando:
aún incluirá dir1 / ignoreDir1 / carpeta vacía en el archivo zip, usando:
hará el truco, también puede usar un ** inicial para buscar en subcarpetas en lugar de solo dir1
fuente
Al igual que otras respuestas, pero excluyendo directorios por completo, en lugar de excluir todo el contenido de los directorios:
fuente
Encontré esto para trabajar de David R Heffelfinger :
Excluyó el directorio y sus contenidos.
fuente
dir1
yignorDir2
está destinada a ser una barra diagonal. ¿Quieres decir que las otras barras invertidas son barras invertidas? Si lo hace, entonces acaba de copiar la respuesta de fuzzybee de hace dos años.Para mí trabajó: zip -9 -r ~ / folded.zip en línea -x carpeta / carpeta2 / carpeta3 / carpetan / \ * .
Parece ser que se debe escapar el asterisco.
fuente