Creazione di un archivio tar da un elenco di file E rimozione del percorso completo


1

Sto cercando di combinare due opzioni per creare un archivio tar, ma non funzionano bene insieme. Non so qual è il problema

Io uso:

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

Se uso solo l'opzione -C crea un archivio tar con solo un percorso relativo "./html/", ma TUTTI i file all'interno di quella cartella. Non voglio questo

Quindi se utilizzo solo l'opzione -T crea un archivio tar con solo i file richiesti, ma il percorso è assoluto "/var/www/website/html/whatever.html". Non voglio neanche questo.

Voglio una combinazione dei due, ma in qualche modo non funziona.

La struttura della cartella è:

/var/www/website/html/
  • Un sacco di file .html

La cartella /tmp/htmllist.txt contiene righe come:

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

E così via.

Come risolvo questo problema?


1
Se tu cd /var/www/website e utilizzare i percorsi dei file relativi in /tmp/htmllist.txt poi tar utilizzerà i percorsi relativi nell'archivio. Puoi anche usare find e inviare l'output a tar ... -T -.
AFH

Risposte:


1

Tar funziona in senso inverso quando si usa -T. Archivia i file incluso il percorso completo. Se non vuoi il tracciato, spogliatelo per estrarlo, per esempio,

Crea tarball

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

Estratto tarball

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

Ciò elimina tre componenti dal percorso di output, ovvero / var / www / website.


Grazie per la tua risposta! Bene, questo tarball viene generato per gli utenti Web da scaricare, quindi non mi aspetto che utilizzino il percorso della striscia o qualsiasi cosa complicata. Inoltre, non voglio che leggano il percorso completo. C'è un'altra soluzione?
DMCGIVEN

O forse posso comprimere, estrarre e ricomprimere di nuovo? Questo è poco efficiente però ....
DMCGIVEN

La soluzione non ovvia sarebbe quella di passare alla directory di origine e fare qualcosa come tar-cvzf foo.tgz * .html
bjanssen

Non è * .html È una selezione specifica di alcuni file .html
DMCGIVEN
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.