Wie können Sie beim Hinzufügen von Dateien zu einem Teer einen beliebigen führenden Pfad festlegen?

10

Ist es möglich, einen beliebigen Pfad innerhalb eines Tar-Archivs festzulegen, um Dateien zu platzieren, die möglicherweise nicht in Ihrem ursprünglichen Dateisystem vorhanden sind? Dies unterscheidet sich vom Schalter -C darin, dass ich möglicherweise eine Sicherungskopie von / etc / erstellen möchte, diese aber als / configuration / etc / im Archiv ablege.

andyortlieb
quelle
1
IIRC die -sOption macht das, aber keine Zeit, um eine ganze Antwort im Moment zu schreiben.
Chris S
@ChrisS In GNU tar 1.28 (Ubuntu 16.04) ist die Option -skurz für --preserve-orderund daher nicht zum Thema. hier
Stéphane Gourichon

Antworten:

7

In GNU tar ist --transform( --xform) die Option, Dateinamenumwandlungen durchzuführen. Dokumentation und Beispiele finden Sie hier

Ciclamino
quelle
Ich hätte das gesehen, wenn ich man tar auf meinem System und nicht auf linux.die.net gelesen hätte !! Vielen Dank für die Antwort, Regex ist noch besser als ich gehofft hatte.
andyortlieb
2
@andyorlieb, danke für die Eingabe von "--xform", die auf Ihrem System nicht funktioniert, aber ändern Sie bitte nicht den Inhalt der Antworten von Personen, es sei denn, Sie haben einen endgültigen Verweis zum Sichern. Vielen Dank.
Chris S
-sauf OSX Teer sieht ähnlich aus
Gman
Erwähnt Dokumentation zu großer Länge geht zu erklären , --transform=expressionum Extrakt Zeit, noch sagt nichts über Add Zeit (das ist die eigentliche Frage ist gefragt).
Stéphane Gourichon
3

In BSD tar -s patternist die Option, Namenstransformationen durchzuführen. Zitat aus der Dokumentation zu 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.
quelle
1
Ich weiß, dass der Teer sagt , dass es speziell um GNU-Teer geht, und Stéphane bemerkte, dass im Wesentlichen Nicht-Gnu-Teer nicht zum Thema gehört. Da es jedoch kein Tag für BSD-Teer gibt, halte ich dies für eine angemessene Antwort.
Patrick M