Búsqueda de sitios web

Excluir archivos y directorios al crear un archivo Tar


¿No quieres todos los archivos en tu tarball? A continuación se explica cómo excluir archivos y carpetas al crear un archivo tar.

El comando tar se utiliza para crear archivos comprimidos a partir de varios archivos y carpetas.

Es bastante sencillo cuando tienes todos los archivos necesarios en un solo lugar. Pero, ¿qué sucede si desea colocar algunos archivos o carpetas en el archivo tar y excluir otros?

Una forma sería copiar los archivos necesarios en un nuevo directorio y luego continuar con el procedimiento estándar, pero no es una forma eficaz.

En su lugar, puede indicarle al comando tar que excluya los archivos no deseados de esta manera:

tar --exclude="File_to_exclude" [options] [archive_name] [path]

Por cierto, esa no es la única forma de hacerlo. Déjame mostrarte un par de métodos aquí.

Pero antes de pasar a la guía, me gustaría mostrarles el directorio que contiene varios archivos y subdirectorios que voy a utilizar en esta guía:

Ahora, procedamos con el primer método.

Método 1. Usar la opción -excluir

Para usar la opción -exclude, deberás seguir la sintaxis de comando proporcionada:

tar --exclude="File_to_exclude" [options] [archive_name] [path]

Por ejemplo, crearé un tarball llamado IHateC excluyendo el archivo HelloWorld.c:

tar --exclude='HelloWorld.c' -zcvf IHateC.tar.gz .

Primero, permítanme desglosar las opciones utilizadas aquí:

  • z utiliza la utilidad gzip para comprimir archivos en el archivo.

  • c es responsable de crear un nuevo archivo comprimido.

  • f permite a los usuarios especificar el nombre del nuevo archivo.

  • v (detallado) nos proporciona una lista de archivos y directorios procesados para crear archivos comprimidos.

Y el . usado al final del comando indica que quiero utilizar el directorio de trabajo actual.

Para comprobar el contenido del archivo tar, puede utilizar el comando tar con la opción -tf:

tar -tf IHateC.tar.gz

pero ¿qué pasa con la exclusión de varios archivos y directorios? Aquí tienes.

Excluyendo múltiples archivos y directorios

Para excluir varios archivos y directorios, puede utilizar la cadena --exclude.

Por ejemplo, excluiré Bash.sh y el subdirectorio llamado Sub-Directory-1:

tar --exclude='Bash.sh' --exclude='Sub-Directory-1' -zcvf NoDir.tar.gz .

Pero este comando puede ser demasiado largo si se supone que debes excluir varios archivos. Y si tienen la misma extensión, ¡las cosas pueden ser mucho más fáciles!

Utilice la extensión de archivo para excluir archivos

Sólo tienes que emparejar la extensión del archivo con --exclude y hará tu trabajo.

Por ejemplo, quiero excluir todos los archivos .mp3 al crear un tarball, entonces tendría que seguir el comando dado:

tar --exclude='*.mp3' -zcvf NoMp3.tar.gz .

Método 2. Usar un archivo de texto para excluir archivos y directorios

En este método, crearé un archivo de texto que contiene los nombres de los archivos y directorios que deseo excluir.

Entonces creé un archivo de texto que contiene 3 nombres de archivo que quiero excluir llamado exclude.txt:

Así que ahora sólo tengo que usar ese archivo de texto para excluir archivos:

tar -zcvf NewFile.tar.gz --exclude-from="exclude.txt" .

¡Y eso es!

Ultimas palabras

Esta fue mi opinión sobre cómo excluir archivos y directorios mientras se crean archivos tar de la forma más sencilla posible.

Y si tiene alguna consulta, ¡puede extraerla en los comentarios!

Artículos relacionados: