Як можна призначити довільний провідний шлях при додаванні файлів у tar?


10

Чи можливо встановити довільний шлях в архіві tar, щоб розмістити файли, які можуть не існувати у вашій оригінальній файловій системі? Це відрізняється від перемикача -C тим, що я, можливо, захочу створити резервну копію / etc /, але розмістити її в архіві як / конфігурації / тощо /.


1
IIRC -sваріант це робить, але зараз не встиг написати цілу відповідь.
Кріс С

@ChrisS У GNU tar 1.28 (Ubuntu 16.04) параметр -sкороткий --preserve-orderі, таким чином, поза темою. тут
Стефан Гурішон

Відповіді:


7

У GNU tar, --transform( --xform) - це можливість зробити перетворення імен файлів. Документацію та приклади можна знайти тут


Я б бачив це, якби я читав людину-дьоготь у своїй системі, а не на linux.die.net !! Дякую за відповідь, регекс навіть кращий, ніж я сподівався.
andyortlieb

2
@andyorlieb, дякую за те, що інформація про "--xform" не працює у вашій системі, але, будь ласка, не змінюйте зміст відповідей людей, якщо у вас немає остаточного посилання на його резервне копіювання. Дякую.
Chris S

-sна смоли OSX схоже
gman

Згадана документація розширюється для пояснення --transform=expressionпід час вилучення , але нічого не говорить про додавання часу (що є фактичним заданим питанням).
Стефан Гурішон

3

У BSD tar -s pattern- це можливість зробити перетворення імен. Цитування з документації 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
Я знаю, що дьоготь говорить, що мова йде саме про дьоготь GNU, і Stéphane прокоментував, що фактично non-gnu tar є поза темою. Однак, оскільки для BSD tar не існує тегів, я думаю, що це відповідна відповідь.
Патрік М
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.