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 --include
opció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.