是否有一个命令可以执行来查明某个目录是否被机器上某处的符号链接引用。
IE:
pwd => /home/user/source/
vdir
lrwxrwxrwx 1 user group 24 2011-04-08 10:59 Symlink -> /home/user/source/Test
drwxr-xr-x 2 user group 4096 2011-04-08 10:59 Test
使用这个例子,我想知道在哪里找到符号链接,因为它引用了测试。
我使用 Ubuntu 10.04。
答案1
也许你可以尝试类似这样的方法:
sudo find / -lname /path/to/your/file
但请注意,某些链接可以用相对路径定义。
或者你可以使用以下命令列出所有符号链接并 grep 你的文件:
sudo find / -type l | grep /path/to/your/file
(-type l 中的 l 不是数字 1 而是 L)
但每种方法都有缺点。也许有人知道更好的方法?
答案2
您必须扫描整个文件系统以查找软链接,然后解析它们并查看它们是否指向同一位置。不要尝试对链接目标进行文本比较,因为这可能会经过另一个硬链接或软链接;您可能需要比较 inode。