在 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
,我建议从以下位置获取最新版本schilytools
:https://sourceforge.net/projects/schilytools/files/并编译它们。