opción de comando tar de Linux

opción de comando tar de Linux

Sé cómo tar un montón de archivos, menos varios que no quiero:

tar --exclude=./*.jpg -pcjvf all.tar.gz ./

Aquí tar todos los archivos, excepto las extensiones jpg.

Quiero hacer lo contrario. Sólo necesito tar ciertos archivos. Después de buscar en Google, no he tenido mucha suerte para encontrar ejemplos.

¿Existe una opción --include con el comando tar?

Respuesta1

No hay ninguna --includeopción, ya que simplemente puede adjuntar todos los archivos que desee incluir como parámetros tar. Si desea incluir mediante comodín, utilice find:

tar -pcjvf specific.tar.gz $(find -name *.jpg)

Respuesta2

¿Me estoy perdiendo de algo? ¿Por qué no simplemente hacer:

tar -pcjvf pictures.tar.gz ./*.jpg

Respuesta3

Algo como esto:

tar -pcjvf images.tar.gz ./*.jpg ./*.jpeg ./*.png

Respuesta4

Lo haría canalizando la salida 'buscar' a tar:

find /your/directory -type f -name '*.jpg' | tar --files-from=- -cvf meow.tar

El comando 'buscar' imprime todos los archivos jpg almacenados en /su/directoriorecursivamente, y la opción mágica --files-from de tar leerá los archivos desde '-', lo que significa stdin, y los tará. Esto me parece particularmente útil porque rsync también tiene la opción --files-from, por lo que solo tengo que recordar un comando que especifica el archivo. Además, 'buscar' es más poderoso que las capacidades de especificación de archivos de tar o rsync.

información relacionada