У GNU tar(1)
є акуратний варіант, який називається --transform
. На чоловіковій сторінці:
--transform, --xform EXPRESSION
використовувати sed замінити EXPRESSION для перетворення імен файлів
Це дозволяє перетворювати назви шляхів на льоту під час вилучення архіву, щоб ви могли контролювати, де і як він буде видобутий.
Моє запитання, чи є спосіб здійснити подібну трансформацію in situ ; тобто не витягуючи архів?
Приклад
[user@host]$ tar tf test.tar
./foo/blah ./foo/bleh
[user@host]$ some_deep_magic 's/foo/bar/' test.tar
[user@host]$ tar tf test.tar
./bar/blah ./bar/bleh
Використовуйте футляр
Я поширюю tar
архів в основному безглуздих кінцевих користувачів і хотів би, щоб він вийшов у правильний шлях без втручання від мене. Я намагаюся уникати тривіального рішення про вилучення архіву, перейменування каталогів та перепакування, оскільки архів є великим.