Como você pode designar um caminho principal arbitrário ao adicionar arquivos a um tar?

10

É possível definir um caminho arbitrário dentro de um arquivo tar para colocar arquivos que podem não existir no seu sistema de arquivos original? Isso difere da opção -C, pois talvez eu queira fazer um backup do / etc /, mas coloque-o no arquivo como / configurações / etc /.

andyortlieb
fonte
1
A -sopção do IIRC faz isso, mas não há tempo para escrever uma resposta completa agora.
Chris S
@ChrisS No GNU, a opção tar 1.28 (Ubuntu 16.04) -sé curta --preserve-ordere, portanto, fora de tópico. aqui
Stéphane Gourichon

Respostas:

7

No GNU tar, --transform( --xform) é a opção para fazer transformações de nome de arquivo. Documentação e exemplos podem ser encontrados aqui

Ciclamino
fonte
Eu teria visto isso se tivesse lido man tar no meu sistema, e não no linux.die.net !! Obrigado pela resposta, regex é ainda melhor do que eu esperava.
#
2
@andyorlieb, obrigado pela entrada em "--xform" que não funciona no seu sistema, mas não altere o conteúdo das respostas das pessoas, a menos que você tenha uma referência definitiva para fazer o backup. Obrigado.
Chris S
-sno alcatrão do OSX é semelhante
gman
A documentação mencionada se esforça bastante para explicar --transform=expressionno tempo de extração , mas não diz nada sobre o tempo de adição (que é a pergunta real feita).
Stéphane Gourichon
3

No BSD tar, -s patterné a opção para fazer transformações de nome. Citando a partir da documentação do freebsd.org :

-s  pattern
     Modify file or archive member names according to pattern.  The
     pattern has the format /old/new/[ghHprRsS] where old is a basic
     regular expression, new is the replacement string of the matched
     part, and the optional trailing letters modify how the replace-
     ment is handled.  If old is not matched, the pattern is skipped.
     Within new, ~ is substituted with the match, \1 to \9 with the
     content of the corresponding captured group.  The optional trail-
     ing g specifies that matching should continue after the matched
     part and stop on the first unmatched pattern.  The optional
     trailing s specifies that the pattern applies to the value of
     symbolic links.  The optional trailing p specifies that after a
     successful substitution the original path name and the new path
     name should be printed to standard error.  Optional trailing H,
     R, or S characters suppress substitutions for hardlink targets,
     regular filenames, or symlink targets, respectively.  Optional
     trailing h, r, or s characters enable substitutions for hardlink
     targets, regular filenames, or symlink targets, respectively.
     The default is hrs which applies substitutions to all names.  In
     particular, it is never necessary to specify h, r, or s.
Patrick M
fonte
1
Eu sei que o alcatrão diz que é especificamente sobre o alcatrão GNU, e Stéphane comentou que essencialmente o alcatrão não gnu está fora de tópico. No entanto, como não uma tag para o tar BSD, acho que essa é uma resposta apropriada.
22818 Patrick M