Criando um arquivo tar a partir de uma lista de arquivos E removendo o caminho completo

1

Estou tentando combinar duas opções para criar um arquivo tar, mas elas não funcionam bem juntas. Eu não sei qual é o problema.

Eu uso:

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

Se eu usar apenas a opção -C, ele cria um arquivo tar com apenas um caminho relativo "./html/", mas TODOS os arquivos dentro dessa pasta. Eu não quero isso.

Então, se eu usar apenas a opção -T, ele cria um arquivo tar com apenas os arquivos necessários, mas o caminho é absoluto "/var/www/website/html/whatever.html". Eu também não quero isso.

Eu quero uma combinação dos dois, mas de alguma forma não funciona.

A estrutura da pasta é:

/var/www/website/html/
  • Muitos arquivos .html

A pasta /tmp/htmllist.txt contém linhas como:

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

E assim por diante.

Como resolvo este problema?

    
por DMCGIVEN 04.06.2015 / 13:53

1 resposta

1

Tar trabalha ao contrário quando usa -T . Ele arquiva os arquivos incluindo o caminho completo. Se você não quer o caminho, despir na extração, por exemplo,

Criar tarball

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

Extrair o tarball

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

Isso remove três componentes do caminho de saída, ou seja, / var / www / website.

    
por 04.06.2015 / 14:10