发现没有给出预期的答案

发现没有给出预期的答案

这怎么可能:

$ find ACCESS -name arctic20.xml

没有输出,但是:

$ ls -l ACCESS/arctic20.xml

给出:

-rw-rw-r-- 1 damocles damocles 2286 Nov  2  2016 ACCESS/arctic20.xml

我检查了文件名中是否存在不可见的字符,但没有发现任何内容:

$ ls -1 ACCESS/arctic20.xml | od -c
0000000   A   C   C   E   S   S   /   a   r   c   t   i   c   2   0   .
0000020   x   m   l  \n
0000024

这是我的系统:

$ uname -a
Linux adc-a 3.13.0-115-generic #162-Ubuntu SMP Fri Mar 24 16:03:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

答案1

默认情况下,GNUfind不遵循符号链接,即使在考虑命令行参数时也不遵循。man find

-H-L和选项控制符号链接的处理。这些选项-P后面的命令行参数被视为要检查的文件或目录的名称,直到第一个以 、 或 开头 的'-'参数。'(''!'

-P永远不要跟随符号链接。 这是默认行为。 当 find 检查或打印文件信息时,如果该文件为符号链接,则所使用的信息应取自符号链接本身的属性。

如果ACCESS是(或可能是)目录的符号链接,并且您想在其中查找文件,即使是那么你必须说一个符号链接find -H ACCESS

相关内容