Linux 如何查找具有特定长度名称的目录

Linux 如何查找具有特定长度名称的目录,linux,unix,find,name-length,Linux,Unix,Find,Name Length,如何找到具有特定长度名称的目录? 例如,我有一堆目录,它们的名称长度等于33个字符(“A92E8CC611FDEBCCA3CF28DC02C918”、“c442fb3f46d6c8bd17d27245290a9512”等等)。 find实用程序是否接受“wc-c”形式的条件?或者其他一些实用程序应该通过管道连接在一起?您没有Java标记,但是如果有,您将编写一个FileFilter来封装您想要的任何条件,并将其传递给Java.io.File.list()方法。如果你想遍历整个目录结构树,你必须递

如何找到具有特定长度名称的目录? 例如,我有一堆目录,它们的名称长度等于33个字符(“A92E8CC611FDEBCCA3CF28DC02C918”、“c442fb3f46d6c8bd17d27245290a9512”等等)。
find
实用程序是否接受“wc-c”形式的条件?或者其他一些实用程序应该通过管道连接在一起?

您没有Java标记,但是如果有,您将编写一个FileFilter来封装您想要的任何条件,并将其传递给Java.io.File.list()方法。如果你想遍历整个目录结构树,你必须递归,但这是完全可行的

抱歉,这不是*nix脚本

ApacheCommons IO JAR有一些很好的文件和目录实用程序,可以使这项工作变得简单。

GNU查找的几种方法

$ find . -type d -name "?????????????????????????????????"

$ find /path -type d -printf "%f\n" | awk 'length==33'
当然可以:


(这是33次
)。

我不想仅仅为了这个而使用Java。:)也许不是……在我注意到缺少“java”标记之前,我写了90%,所以我还是发布了它。+1但我认为应该是“-type d”来查找目录,而不是文件查找-regextype posix extended-type d-regex“{5}”对不起,用35代替5。您需要计算前导“/”注意-regex匹配在整个路径上。因此,如果我从诸如find/path-regextype posix extended-type d-regex“{35}”这样的目录开始查找,那么使用-regex将不起作用
find dir -name '?????????????????????????????????'