这怎么可能:
$ 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
。