Вопрос В чем смысл различных предупреждений «удалить ведущую косую черту»?


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

Я получаю как

Removing leading / from member names

а также

Removing leading / from hard link targets

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


7
2018-06-04 12:07


происхождения




ответы:


Никакая запись в 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 вместо этого было бы перезаписано.


9
2018-06-04 13:11



tar архив находятся разрешено иметь абсолютные имена, удаление может быть отключено с помощью -P при необходимости ... Следует, наверное, также отметить, что деготь архивы хранят жесткие ссылки аналогично символическим ссылкам - вторая и дальнейшая ссылки фактически указывают на первое дорожка (не inode), поэтому отображается второе сообщение. - grawity
@grawity: Uhhhh ... допустим, это возможное для отключения зачистки. Это примерно как «допустимый», так как распаковывает тысячи файлов в текущем каталоге. ;-) - DevSolar
Я понял причину снятия косой черты, почему это значение по умолчанию и т. Д., Но не знал, что ключевым отличием двух предупреждений было «нормальные файлы» и «жесткие ссылки». Спасибо (и к грамотности тоже). - user1071847