tar: --exclude = ". git": No se puede estadísticas: No existe tal archivo o directorio

11

Esto me está volviendo loca. Quiero tarun directorio, pero excluyo algunos archivos. Este es mi comando:

tar -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION --exclude='.git' --exclude='.gitignore'

Si bien el comando anterior funciona en RedHat EL5, no funciona en Mac OS 10.8.2. He intentado reemplazar el 'con ", \'y \". He intentado eliminar los signos iguales. Nada funciona.

¿Qué estoy haciendo mal?

Randomblue
fuente
Uso gnutarde Brew, MacPort, etc. El alquitrán de Apple está demasiado lisiado.
jww

Respuestas:

23

Todas las opciones deben estar juntas antes de los argumentos, y la -fbandera debe preceder al archivo tar:

tar -zcv --exclude = '. git' --exclude = '. gitignore' -f $ NAME- $ VERSION.tar.gz $ NAME- $ VERSION
Flup
fuente
Si lo hace tar --help, ¿aparece la --excludeopción en la ayuda? No conozco OSX, pero tal vez hay un en gtarlugar del stock tar.
Flup
2
Ah, lo veo :) intente esto: tar --exclude='.git' --exclude='.gitignore' -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION la -fbandera espera un nombre de archivo como siguiente argumento.
Flup
Lo siento sí, editado. Soy nuevo aquí, así que tengan paciencia conmigo!
Flup
2
Puede dar fe de que esto funciona en una Mac - 10.9. Me tomó un tiempo encontrar la versión correcta de esto, ¡por eso dejo mi comentario aquí!
JohnAllen
2

Esto te da lo que quieres:

tar czvf $NAME-$VERSION.tar.gz $NAME-$VERSION --wildcards --exclude=.git --exclude=.gitignore
Sonda
fuente
1

Parece que le gusta filtrar meta directorios .git, la forma más fácil es usar --exclude-vcs para excluir los directorios del sistema de control de versiones:

tar -zcvf $NAME-$VERSION.tar.gz $NAME-$VERSION --exclude-vsc

He usado "tar (GNU tar) 1.27.1" en mi máquina Linux, parece que el comando general BSD de mac (versión no GNU) no es compatible con esta opción.

Kayvan Tehrani
fuente
¿Estás seguro de que esto funciona con el alquitrán de Apple? Vea la tar(1)página de manual de Apple . no enumera --exclude-vsco --exclude-vcs.
jww
Gracias querida @jww por tu pista. He editado mi respuesta para que sea más efectiva.
Kayvan Tehrani