Come si può designare un percorso iniziale arbitrario quando si aggiungono file a un tar?


10

È possibile impostare un percorso arbitrario all'interno di un archivio tar per posizionare file che potrebbero non esistere sul file system originale? Ciò differisce dall'opzione -C in quanto potrei voler fare un backup di / etc /, ma inserirlo nell'archivio come / configurations / etc /.


1
IIRC l' -sopzione lo fa, ma non ho tempo di scrivere un'intera risposta in questo momento.
Chris S,

@ChrisS In GNU tar 1.28 (Ubuntu 16.04) -sè un'opzione abbreviata --preserve-ordere quindi fuori tema. qui
Stéphane Gourichon,

Risposte:


7

In GNU tar, --transform( --xform) è l'opzione per effettuare trasformazioni di nomi di file. Documentazione ed esempi sono disponibili qui


Lo avrei visto se avessi letto man tar sul mio sistema piuttosto che su linux.die.net !! Grazie per la risposta, regex è persino meglio di quanto sperassi.
Andyortlieb,

2
@andyorlieb, grazie per l'input su "--xform" che non funziona sul tuo sistema, ma ti preghiamo di non modificare il contenuto delle risposte delle persone a meno che tu non abbia un riferimento definitivo per il backup. Grazie.
Chris S,

-ssul tar di OSX sembra simile
gman

La documentazione citata va ben oltre per essere spiegata --transform=expressional momento dell'estrazione , ma non dice nulla sull'aggiunta del tempo (che è la vera domanda posta).
Stéphane Gourichon,

3

In tar BSD, -s patternè l'opzione per effettuare trasformazioni di nomi. Citando dalla documentazione di 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.

1
So che il tar dice che riguarda specificamente il tar GNU e Stéphane ha commentato che essenzialmente il tar non gnu è fuori tema. Tuttavia, poiché non esiste un tag per tar BSD, penso che questa sia una risposta appropriata.
Patrick M,
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.