Создание архива tar из списка файлов И удаление полного пути

Создание архива tar из списка файлов И удаление полного пути

Я пытаюсь объединить два варианта создания tar-архива, но они плохо работают вместе. Не знаю, в чем проблема.

Я использую:

tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt

Если я использую только опцию -C, то создается архив tar только с относительным путем "./html/", но ВСЕМИ файлами внутри этой папки. Мне это не нужно.

Затем, если я использую только опцию -T, он создает архив tar только с необходимыми файлами, но путь абсолютный "/var/www/website/html/whatever.html". Мне это тоже не нужно.

Я хочу объединить эти два варианта, но почему-то это не работает.

Структура папок следующая:

/var/www/website/html/
  • Множество файлов .html

Папка /tmp/htmllist.txt содержит такие строки:

  • /var/www/website/html/file1.html
  • /var/www/website/html/file5.html
  • /var/www/website/html/file32.html

И так далее.

Как решить эту проблему?

решение1

Tar работает наоборот при использовании -T. Он архивирует файлы, включая полный путь. Если вам не нужен путь, удалите его при извлечении, например,

Создать тарбол

tar -C /var/www/website html -cvzf html.tgz -T /tmp/htmllist.txt

Извлечь тарбол

tar -xvf html.tgz --strip-path=3

Это удаляет три компонента из выходного пути, то есть /var/www/website.

Связанный контент