Что означают различные предупреждения об «удалении начального слеша»?

Что означают различные предупреждения об «удалении начального слеша»?

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

Я понимаю и то, и другое

Removing leading / from member names

и

Removing leading / from hard link targets

предупреждения. В чем разница между ними?

решение1

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

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

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

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

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

/home/user $ tar xzf tarball.tgz

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

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