为什么'发现'在终端告诉我它找到了不存在的文件?

时间:2017-07-01 06:14:58

标签: bash find

我正在四处寻找终端上的文件(我使用操作系统):

monica$ sudo find / -type f -name '*neo4j-desktop*'

很好,对吗?所以这就是我得到的:

/Applications/Neo4j Community Edition 3.1.3.app/Contents/Resources/app/bin/neo4j-desktop-3.1.3.jar
/Applications/Neo4j Community Edition 3.1.3.app/Contents/Resources/app/lib/neo4j-desktop-3.1.3.jar
find: /dev/fd/Applications: No such file or directory
find: /dev/fd/Applications: No such file or directory

偶尔会出现这种情况。为什么find想要告诉我无法找到两次文件?这没有理智意义。

1 个答案:

答案 0 :(得分:2)

在这种情况下,你应该使用-path -prune组合

find -H / -type f -path "/dev*" -or -path "/proc*" -or -path "/sys*" -prune -o -name "*neo4j-desktop*" -print

或者像下面这样做

find -H  / -mount -type f -name "*neo4j-desktop*"

[ find manpage ]说:

  

-mount
  不要下载其他文件系统上的目录。 -xdev的备用名称,   与其他一些版本的find兼容。