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!