GNU/Linux >> Tutoriales Linux >  >> Linux

Comando de shell para el directorio tar excluyendo ciertos archivos/carpetas

Puede tener varias opciones de exclusión para tar, por lo que

$ tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .

etc funcionará. Asegúrate de poner --exclude antes los elementos de origen y destino.


Pregunta anterior con muchas respuestas, pero descubrí que ninguna era lo suficientemente clara para mí, por lo que me gustaría agregar mi intento.

si tiene la siguiente estructura

/home/ftp/mysite/

con los siguientes archivos/carpetas

/home/ftp/mysite/file1
/home/ftp/mysite/file2
/home/ftp/mysite/file3
/home/ftp/mysite/folder1
/home/ftp/mysite/folder2
/home/ftp/mysite/folder3

entonces, desea crear un archivo tar que contenga todo dentro de /home/ftp/mysite (para mover el sitio a un nuevo servidor), pero file3 es solo basura, y todo en folder3 tampoco es necesario, por lo que omitiremos esos dos.

usamos el formato

tar -czvf <name of tar file> <what to tar> <any excludes>

donde c =crear, z =zip y v =detallado (puede ver los archivos a medida que se ingresan, útil para asegurarse de que ninguno de los archivos que excluye se agregue). y f=archivo.

entonces, mi comando se vería así

cd /home/ftp/
tar -czvf mysite.tar.gz mysite --exclude='file3' --exclude='folder3'

tenga en cuenta que los archivos/carpetas excluidos están relativamente a la raíz de su archivo tar (he intentado la ruta completa aquí en relación con / pero no puedo hacer que funcione).

Espero que esto ayude a alguien (y a mí la próxima vez que lo busque en Google)


Posibles opciones para excluir archivos/directorios de la copia de seguridad usando tar:

Excluir archivos usando múltiples patrones

tar -czf backup.tar.gz --exclude=PATTERN1 --exclude=PATTERN2 ... /path/to/backup

Excluir archivos usando un archivo de exclusión lleno con una lista de patrones

tar -czf backup.tar.gz -X /path/to/exclude.txt /path/to/backup

Excluir archivos usando etiquetas colocando un archivo de etiqueta en cualquier directorio que deba omitirse

tar -czf backup.tar.gz --exclude-tag-all=exclude.tag /path/to/backup

Puede excluir directorios con --exclude para alquitrán.

Si desea archivar todo excepto /usr puedes usar:

tar -zcvf /all.tgz / --exclude=/usr

En tu caso quizás algo como

tar -zcvf archive.tgz arc_dir --exclude=dir/ignore_this_dir

Linux
  1. Shell - ¿Cómo encontrar el directorio de algún comando?

  2. Exclusión de directorio al crear un archivo .tar.gz

  3. tar/gzip excluyendo ciertos archivos

  4. Concatenar múltiples archivos tar en un solo comando

  5. ¿Cómo tar archivos con un orden ordenado?

Comando tar de Linux:cómo comprimir archivos en Linux

Cómo excluir un directorio al buscar archivos en Linux

Cómo listar archivos recursivamente en Linux

Cómo contar archivos en el directorio en Linux

Primeros pasos con el comando Tar

Cómo contar el número de archivos en un directorio en Linux