tar усекает имена файлов при переносе tarfile из Linux в Unix (Solaris)

658
user685398

Какие шаги я сделал:

На машине Linux (RHEL-6): tar -cvf <tarname.tar>.

На Unix-машине (Solaris-10): sftp <linuxUser@server.com>и загрузите файл tarp в систему Unix.

Теперь распакуйте на Unix: tar -xvf <tarname.tar>.

При извлечении файлов я вижу, что некоторые файлы создаются с усеченными именами файлов, как показано ниже:

bash-3.2$ ls -lt  total 48 -rw-r--r-- 1 user group 454 Jan 13 01:53 FileNam 

Вместо этого FileName.txtя получаю FileNam.

tar -tvf <tarname.tar> также отображает усеченные имена файлов.

Как правильно распаковать tar-файл после его переноса из Linux в Unix, а не через Windows?

Примечание. Tarfile, передаваемый в Unix, имеет полные имена файлов; только при извлечении tar-файла файлы создаются с усеченными именами файлов.

1
Есть ли вероятность, что полный путь длиннее 255 символов? jcbermu 7 лет назад 0
[Solaris tar] (http://ibgwww.colorado.edu/~lessem/psyc5112/usail/man/solaris/tar.1.html): длина полного пути не может превышать 255 символов. Длина имени файла (или листа) не может превышать 100 символов. Префикс имени пути не может превышать 155 символов. Что-нибудь из этого имеет место? Вы видите усеченные имена на Linux-машине, используя tar tvf?`? Seth 7 лет назад 2
@Seth Обратите внимание, что эти ограничения взяты из стандарта POSIX для архивов tar. GNU tar создает архивы, которые не соответствуют этому стандарту. Просто Google «Jeorg Schilling GNU tar» для некоторых эпических и существенных высказываний о том, что GNU tar нарушает стандарт POSIX за последние пару десятилетий. Вот только один: http://unix.derkeiler.com/Newsgroups/comp.unix.solaris/2003-08/1899.html Обратите внимание, что Schilling знает историю GNU tar и конкретные стандарты, которые он нарушает. Andrew Henle 7 лет назад 0
Довольно интересно узнать. Исходя из моего личного пользовательского опыта, я предполагаю, что сейчас gnu tar более широко используется, и такой стандарт будет стандартом де-факто, даже если он не будет (следовать) официальному стандарту с определенными действиями. Но, как показывает публикация в новостной группе, кажется, что в ней много истории, поэтому я могу ошибаться, но в конечном итоге это вопрос мнения и не поможет исправить реальную проблему. Решение, похоже, заключается в использовании GNU tar. Из этой публикации в новостной группе кажется, что ОП должен был получить некоторые предупреждения во время распаковки о некоторых недействительных / неизвестных заголовках. Seth 7 лет назад 0

1 ответ на вопрос

2
Munkeh72

Ответ Фрэнсиса о проблемах совместимости tar в Solaris и Linux является правильным.

Вы можете установить gtar (GNU tar) с сайта sunfreeware, если вы можете его найти - Google "sunfreeware gnu tar".

Кроме того, вы можете использовать cpio, в самый портативный вариант для архивирования файлов между * nixes. В прошлом я успешно проходил между AIX, Linux, Solaris, HP-UX ↔ Linux с использованием cpio, когда у меня не было доступа к gtar.

На самом деле, другой ответ обратный относительно того, откуда возникает несовместимость. Andrew Henle 7 лет назад 0

Похожие вопросы