it-swarm.dev

Excluyendo directorio al crear un archivo .tar.gz

Tengo una carpeta /public_html/, en esa carpeta hay una carpeta /tmp/ que tiene como 70gb de archivos que realmente no necesito.

Ahora estoy tratando de crear un .tar.gz de /public_html/ excluyendo /tmp/

Este es el comando que ejecuté:

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp/" 

El tar todavía se está creando, y al hacer un ls -sh puedo ver que MyBackup.tar.gz ya tiene aproximadamente 30 gb, y estoy seguro de que /public_html/ sin /tmp/ no tiene más de 1GB de archivos.

¿Qué hice mal?

105
suresh

Intente eliminar la última/al final de la ruta del directorio para excluir

tar -pczf MyBackup.tar.gz /home/user/public_html/ --exclude "/home/user/public_html/tmp" 
179
Victor Parmar

Intente mover --exclude a antes de incluir.

tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/ 
35
Martin Algesten

Sí, elimine el / final y (al menos en ubuntu 11.04) todas las rutas dadas deben ser relativas o completas. No puede mezclar rutas absolutas y relativas en el mismo comando.

Sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "home/user/start-directory/logs"

no excluirá el directorio de registros, pero

Sudo tar -czvf 2011.10.24.tar.gz ./start-directory --exclude "./start-directory/logs"

trabajará

15
user

El comando correcto para excluir el directorio de la compresión es:

tar --exclude='./folder' --exclude='./upload/folder2' -zcvf backup.tar.gz backup/

Asegúrese de poner --exclude antes de los elementos de origen y destino .

y puede verificar el contenido del archivo tar.gz sin descomprimir:

tar -tf backup.tar.gz
8
oussaka

Prueba esto

tar -pczvf advancedarts.tar.gz /home/user/public_html/ --exclude /home/user/public_html/tmp
3
Yogesh

Esto funcionó para mí:

tar -zcvf target.tar.gz target/ --exclude="target/backups" --exclude="target/cache"
1
Black

La respuesta aceptada no funcionó para mí, ejecutando unxutils tar en windows10. En su lugar, tuve que poner los archivos/dirs para archivarlos con el parámetro last , como este:

tar -pczf MyBackup.tar.gz --exclude "/home/user/public_html/tmp/" /home/user/public_html/

Entonces funcionó.

1
user2081279

También puede excluir más de uno usando solo un --exclude. Como este ejemplo:

tar -pczf MyBackup.tar.gz --exclude={"/home/user/public_html/tmp","/home/user/public_html/data"} /home/user/public_html/

En --exclude= debe terminar el nombre del directorio sin / y debe estar entre MyBackup.tar.gz and/home/user/public_html/

La sintaxis es:

tar <OPTIONS> <TARBALL_WILL_CREATE> <ARGS> <PATH_TO_COMPRESS>
0
Matheus Lozano