Можно добавить префиксы (и манипулировать именами файлов, путями) в tar-архивах, используя --transform
(из man tar
):
- transform = EXPRESSION, --xform = EXPRESSION
используйте sed replace EXPRESSION для преобразования имен файлов
Вы хотите добавить каталог, что можно сделать с помощью следующего выражения transform
:
's,^,directory/,'
,
= разделитель, может быть любым, если во всех местах используются одни и те же символы
s
= искать и заменять
^
= начало строка
directory/
= текст выбора
По сути, он говорит: «замените начало строки на directory/
».
Пример:
→ tree -a .
.
├── dir1
│ └── file3
├── file1
└── file2
→ tar --transform 's,^,directory/,' -zvcf backup.tar.gz *
dir1/
dir1/file3
file1
file2
→ tar tf backup.tar.gz
directory/dir1/
directory/dir1/file3
directory/file1
directory/file2
→ mkdir tmp && cd tmp/
→ tar xf ../backup.tar.gz
→ tree -a .
.
└── directory
├── dir1
│ └── file3
├── file1
└── file2