Solaris tar:“符号链接失败:不是目录”

Solaris tar:“符号链接失败:不是目录”

在 Solaris 10 下使用符号链接解压 tar 存档时,出现以下错误:

tar: lib/jre/: symbolic link failed: Not a directory

符号lib/jre链接指向的文件lib/jre1.8.0_46也位于 tar 存档中。我可以使用 GNU tar 很好地解压 tar 。那么这里有什么问题呢?

答案1

如果你想在Solaris下使用gnu tar。然后查看内联:

  • Solaris 10:检查是否有它,pkginfo SUNWgtar 通常的路径是:/usr/sfw/bin/gtar
  • pkg info gnu-tar Solaris 11:通过执行“通常的路径是/usr/gnu/bin/tar带有两个符号链接”来/usr/sfw/bin/gtar检查是否有它/usr/bin/gtar

根据注释更新信息。如果 gnu tar 不可用,您可以创建符合 POSIX 的 tar--format=posix选项。

这可以从 GNU tar 版本 1.14 获得。更多信息可以在以下位置找到:GNU TAR

答案2

鉴于您收到错误Not a directory,很明显 tar 存档中的符号链接是

lib/jre/ -> lib/jre1.8.0_46

这与您在文字中告诉我们的不同。

如果gtar不抱怨该链接,则该链接已损坏。

不幸的是,您没有提供有关您的限制的足够信息。

我们需要知道:

  • 你在谈论什么类型的 tar 存档。您可以通过以下方式获取类型star -t -print-artype < foo.tar.gz
  • 档案中的确切条目是什么。您可以通过以下方式得到答案star -tv < foo.tar.gz pat='*jre*'

使用创建的存档gtar不符合 POSIX 标准,甚至可能会更改存档中间的存档类型。你应该明白这可能会产生非常奇怪的结果。

要获取star,我建议从以下位置获取最新版本schilytoolshttps://sourceforge.net/projects/schilytools/files/并编译它们。

相关内容