遵循复杂的符号链接嵌套并完全捕获和报告沿途的每个符号链接(包括路径中间的符号链接)的最佳工具/编程技术是什么(有关更多信息,请参见下文) 。
这是一个具体的例子。考虑 shell 命令的以下输出
ls -l /Library/Java/Home
lrwxr-xr-x 1 root admin 48 Feb 24 12:58 /Library/Java/Home -> /System/Library/Frameworks/JavaVM.framework/Home
ls 命令让您知道文件 /Library/Java/Home 文件是指向另一个位置的符号链接。但是,它不会让您知道它指向的东西也是一个符号链接
ls -l /System/Library/Frameworks/JavaVM.framework/Home
lrwxr-xr-x 1 root wheel 24 Feb 24 12:58 /System/Library/Frameworks/JavaVM.framework/Home -> Versions/CurrentJDK/Home
反过来,这不会让您知道指向文件的部分路径是符号链接。
ls -l /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
lrwxr-xr-x 1 root wheel 3 Feb 24 12:58 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK -> 1.5
哪个,只是为了完成这个故事,是另一个符号链接
ls -l /System/Library/Frameworks/JavaVM.framework/Versions/1.5
lrwxr-xr-x 1 root wheel 5 Feb 24 12:58 /System/Library/Frameworks/JavaVM.framework/Versions/1.5 -> 1.5.0
最后指向一个“真实”文件夹。
是否有任何工具可以以某种方式(图形或纯旧文本)为您可视化完整的链接链?我敢肯定,一个人可以自己编写脚本(如果你愿意,请这样做并分享!),但这似乎是一种充满“哦,废话,边缘案例。哦,废话,另一个边缘案例”。我希望有人已经去打扰了。
我从事自由职业/合同工作,每个人在 Web 服务器上安装 PHP 应用程序时使用的符号链接略有不同。我的一半工作通常是取消嵌套(不可避免地)未记录的层次结构,以便我们知道将新代码/模块放在哪里。