有没有一种方法来检查是否有指向目录的符号链接?(Is there a way to check if

2019-06-23 10:26发布

我有我的服务器,我有一些符号链接指向的文件夹中。 因为我已经创建了一个新的文件夹,我想改变所有这些符号链接指向新的文件夹。 我会考虑用符号链接到新文件夹替换原来的文件夹,但似乎如果我有这种做法继续它可以变得非常凌乱非常快。

我一直在做的是手动更改符号链接指向新的文件夹,但我可能已经错过了一对夫妇。

有没有一种方法来检查是否有指向一个特定的文件夹的任何符号链接?

Answer 1:

我会使用find命令。

find . -lname /particular/folder

这将递归搜索当前目录的符号链接到/particular/folder 。 请注意,它只能找到绝对的符号链接。 类似的命令可以用来搜索在所谓的“文件夹”对象指向所有符号链接:

find . -lname '*folder'

从那里,你将需要淘汰任何误报。



Answer 2:

您可以使用审计符号链接的symlinks程序由Mark阁下写-它会扫描整个文件系统的,规范的符号链接路径绝对形式,并把它们打印到标准输出。



Answer 3:

是不是真的有任何直接的方式来检查此类符号链接。 想想看,你可能有未安装所有的时间一个文件系统(如外部USB驱动器),其中可能包含符号链接到系统中的其他卷。

你可以做一些事情:

for a in `find / -type l`; do echo "$a -> `readlink $a`"; done | grep destfolder

我注意到,FreeBSD的find不支持-lname选项,这就是为什么我结束了以上。



Answer 4:

find . -type l -printf '%p -> %l\n'


Answer 5:

除了看所有其他文件夹,如果有指向原来的文件夹中的链接,我不认为这是可能的。 如果是这样,我会感兴趣。



Answer 6:

find / -lname 'fullyqualifiedpathoffile'


Answer 7:

find /foldername -type l -exec ls -lad {} \;


Answer 8:

对于硬链接,你可以得到你的目录的索引节点用的“LS”选项(一个-i ,我认为)。

然后, find-inum会找到所有常见的硬链接。

对于软链接,你可能需要做一个ls -l后寻找文本中的所有文件“ - >”和规范它,以确保它是一个绝对路径。



文章来源: Is there a way to check if there are symbolic links pointing to a directory?
标签: linux symlink