java我如何跟踪并完整报告一系列符号链接?
<> P>什么是最好的工具/编程技术,用于跟踪一个复杂的嵌套Syrink <强>,并完全捕获并报告沿途的每个链接,包括路径中间的(参见下面的更多信息)< /强>
这里有一个具体的例子。考虑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应用程序的方式略有不同。我的一半工作通常是取消这个(不可避免的)未记录层次结构的嵌套,以便我们知道新代码/模块应该放在哪里
# 1 楼答案
这是一个bash脚本,我前阵子拼凑了一段时间来做这个。它会找到“>;”在
ls
输出中,指示遍历链接的符号链接。我不能保证在边缘情况下有完美的行为(例如,为了避免循环,遵循十个链接后很难放弃),但对我来说效果很好# 2 楼答案
如果在循环中添加一个
print
,这个python脚本就可以做到这一点:http://mail.python.org/pipermail/python-ideas/2007-December/001254.html
# 3 楼答案
Tcl有一个命令[file type$filename],如果是链接,它将返回“link”。它还有另一个命令[file link$filename],将返回链接指向的内容。有了这两个命令,就可以获取一个链接并跟踪这些链接,直到找到一个实际的文件
也许我脑子里会有这样的想法:
您将得到如下输出:
如果有一个循环链接,它将看起来像: