7

Я использую GNU tar с указанием нескольких экземпляров --exclude .

Я получаю оба

Removing leading / from member names

а также

Removing leading / from hard link targets

предупреждения. Какая разница между ними?

1 ответ1

9

Никакая запись в архиве не может начинаться с "/", то есть иметь абсолютный путь. Это функция безопасности, поэтому если вы распакуете tar-архив, вы можете быть уверены, что все файлы будут находиться в целевом каталоге и подкаталогах, а не разбросаны по всей системе (и, возможно, перезаписывать критические файлы).

Предупреждения, которые вы видите, являются результатом того, что tar удаляет начальный «/» из любых абсолютных путей, как для обычных файлов ("имена членов"), так и для жестких ссылок ("цели жестких ссылок").

Например, эта команда ...

/home/user $ tar czf tarball.tgz /home/user/data

... приведет к этим предупреждениям, поскольку "/home/..." преобразуется в "home/...". Распаковка тарболла ...

/home/user $ tar xzf tarball.tgz

... приведет к распаковке всех файлов в /home/user/home/user/data . Если tar не удалил начальные косые черты, файлы в /home/user/data были бы перезаписаны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .