使用find with -L选项

时间:2012-02-07 21:27:27

标签: linux bash find gnu-coreutils

我有这个:

mylink -> myfile

当我这样做时:

find -L . -name 'mylink'

我明白了:

./mylink

我不明白为什么会出现这种情况,请参阅手册页:

-L:遵循符号链接。当查找或打印有关文件的信息时,所使用的信息应取自链接指向的文件的属性,而不是来自链接本身(除非它是一个粗略的符号链接或查找无法检查文件链接指向的地方)。

基于以上所述,我希望我的示例案例具有以下行为:find开始搜索。它遇到了mylink。因为-L实际上它取消引用它并获取指向文件'myfile'的名称。文件名与模式'mylink'不匹配,不报告任何内容。发生了什么事?

2 个答案:

答案 0 :(得分:1)

以下链接'当存在指向目录的链接时适用。

指向文件的链接只是一个文件本身。没有-L,目录的链接也只是一个文件。

只有在添加-L时,才会找到递归到链接目录

答案 1 :(得分:1)

该名称不是文件的属性,它是包含它的目录的属性。

如果要匹配符号链接的内容,请使用-lname