Я использую 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
были бы перезаписаны.