Crear un archivo tar a partir de una lista de archivos Y eliminar la ruta completa

Crear un archivo tar a partir de una lista de archivos Y eliminar la ruta completa

Estoy intentando combinar dos opciones para crear un archivo tar, pero no funcionan bien juntas. No sé cuál es el problema.

Yo suelo:

tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt

Si uso solo la opción -C, se crea un archivo tar con solo una ruta relativa "./html/", pero TODOS los archivos dentro de esa carpeta. No quiero esto.

Luego, si uso solo la opción -T, se crea un archivo tar con solo los archivos requeridos, pero la ruta es absoluta "/var/www/website/html/whatever.html". Yo tampoco quiero esto.

Quiero una combinación de los dos, pero de alguna manera no funciona.

La estructura de carpetas es:

/var/www/website/html/
  • Muchos archivos .html

La carpeta /tmp/htmllist.txt contiene líneas como:

  • /var/www/sitio web/html/file1.html
  • /var/www/website/html/file5.html
  • /var/www/website/html/file32.html

Etcétera.

¿Cómo soluciono este problema?

Respuesta1

Tar funciona al revés cuando se usa -T. Archiva los archivos, incluida la ruta completa. Si no desea la ruta, quítela al extraer, por ejemplo,

Crear archivo comprimido

tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt

Extraer archivo tar

tar -xvf html.tgz --strip-path=3

Esto elimina tres componentes de la ruta de salida, es decir, /var/www/website.

información relacionada