为什么 find 有时能找到,有时却找不到?

为什么 find 有时能找到,有时却找不到?
find -name "?"
find ~ -name "?"

为什么其中一个命令可以找到.而另一个却找不到?如何使第二个版本使用显式路径找到.指定目录中的条目以及任何其他单字符文件?

find (GNU findutils) 4.5.11以防万一……

答案1

如果没有starting pointfor find,它将使用.(当前目录)。事实上,这两行将产生相同的输出:

find -name "?"
find . -name "?"

能够指定起点找到find目录.后,添加/.到您的起点,即:

find ~/. -name "?"

编辑:现在对于为什么的问题,让我们比较一下这两个命令:

find ~/. -name "?"
find ~ -name "?"

它们的输出有两点不同。首先,with 命令产生的结果每行/.都有一个额外的内容,这是意料之中的。其次,这也是 OP 的根本问题,即该命令找到了伪目录本身,但该命令没有找到。这是因为搜索明确要求搜索。除非它在命令行上列出,否则将忽略和伪目录。(你能想象如果没有的话会怎样吗?)/./.~/.~~/..findfind...

请参阅man find以了解更多信息。

相关内容