使用GNU find命令忽略/修剪隐藏的目录

kos*_*tmo 11 bash

使用该find命令时,为什么在匹配其他所有内容时,以下内容将成功忽略隐藏目录(以句点开头的目录):

find . -not \( -type d -name ".?*" -prune \)

但这根本不匹配:

find . -not \( -type d -name ".*" -prune \)

唯一的区别是问号.后一个命令不应该同样检测和排除以句点开头的目录吗?

Pau*_*ce. 8

后一个命令修剪一切,因为它修剪.- 尝试这些看到差异:

$ ls -lad .*
.
..
.dotdir
$ ls -lad .?*
..
.dotdir
Run Code Online (Sandbox Code Playgroud)

你会看到第二个.中没有包含它,因为它只有一个字符长.glob" .?*"仅包含至少两个字符长的文件名(点,加上任何单个字符,非可选,加上任何零个或多个字符的序列).

顺便说一下,find不是Bash命令.