查找:列出所有目录,除了名称中带有数字的目录及其子目录

Moc*_*ing 6 find regular-expression

我正在运行以下命令来查找所有没有数字的目录(不包括原始路径):

find /path/2/directory -type d -name '[!0-9]*'
Run Code Online (Sandbox Code Playgroud)

问题是它找到的目录是具有数字的目录的子目录。

例子:

/path/2/directory/20160303/backup
Run Code Online (Sandbox Code Playgroud)

甚至

/path/2/directory/backup20160303a/backup
Run Code Online (Sandbox Code Playgroud)

有什么办法可以防止 find 返回这样的目录吗?

我无法通过限制深度来解决这个问题,深度可能会有所不同。

例子:

/path/2/directory/subdirectory/20160303/backup
Run Code Online (Sandbox Code Playgroud)

don*_*sti 10

使用-prune忽视这些目录:

find /path/to/directory -name '*[0-9]*' -prune -o -type d -print
Run Code Online (Sandbox Code Playgroud)

但是,如果您正在进行gnu设置,则可能希望C在运行上述内容时使用语言环境,请参阅下面的 Stéphane 评论。