GNU/Linux >> Tutoriales Linux >  >> Linux

tar -C con un patrón de archivo comodín

El problema es que el *.xml es interpretado por el shell, no por tar. Por lo tanto, los archivos xml que encuentra (si los hay) están en el directorio en el que ejecutó el comando tar.

Tendría que usar una operación de varias etapas (quizás involucrando tuberías) para seleccionar los archivos que desea y luego tararlos.

La forma más fácil sería simplemente cd en el directorio donde están los archivos:

$ (cd /path/to/file && tar -cf /path/to/example.tar *.xml)

debería funcionar.

Los corchetes agrupan los comandos, por lo que cuando hayan terminado todavía estará en su directorio original. El &&significa el tar solo se ejecutará si el cd inicial tuvo éxito.


En uno de tus intentos:

tar -cf example.tar -C /path/to/file "*.xml"

el carácter * se pasa de hecho a tar. Sin embargo, el problema es que tar solo admite coincidencias con comodines en los nombres de los miembros de un archivo. Por lo tanto, si bien puede usar comodines al extraer o enumerar miembros de un archivo, no puede usar comodines cuando está creando un archivo.

En tales situaciones, a menudo recurro a encontrar (como ya mencionaste). Si tiene GNU find, tiene la buena opción de imprimir solo la ruta relativa, usando la opción -printf:

find '/path/to/file' -maxdepth 1 -name '*.xml' -printf '%P\0' \
| tar --null -C '/path/to/file' --files-from=- -cf 'example.tar'

La respuesta aceptada asume que los archivos se toman de un solo directorio. Si usa múltiples -C opciones, entonces necesita un enfoque más general. El siguiente comando hace que el shell expanda los nombres de los archivos, que luego se pasan a tar .

tar -cf example.tar -C /path/to/file $(cd /path/to/file ; echo *.xml)

Linux
  1. ¿Reemplazar nueva línea con Nul?

  2. ¿Cómo crear un archivo zip a partir del contenido de una carpeta con cierto patrón de nombre?

  3. Abrir un archivo .tar.gz con un solo comando

  4. Advertencia con nftw

  5. ¿Cómo protejo con contraseña un archivo .tgz con tar en Unix?

Cómo extraer (descomprimir) el archivo tar.xz

Cómo crear un archivo Tar Gz

Comando WC de Linux con ejemplos

Firmas digitales con GnuPG

14 comandos básicos de Tar en Linux con ejemplos para principiantes

Extraiga el archivo tar.gz en Linux