1

目前我正在使用 linux(Fedora 15) 并且我正在尝试使用以下命令在整个文件系统中搜索文件夹

find / -name "apache-tomcat*"

执行上述命令花费的时间越来越多,用户无法等待,结果如下所示

[root@user fedrik]# find / -name "apache-tomcat*"
find: `/proc/6236/task/6236/ns/net': No such file or directory
find: `/proc/6236/task/6236/ns/uts': No such file or directory
find: `/proc/6236/task/6236/ns/ipc': No such file or directory
find: `/proc/6236/ns/net': No such file or directory
find: `/proc/6236/ns/uts': No such file or directory
find: `/proc/6236/ns/ipc': No such file or directory
find: `/proc/6462/task/6462/ns/net': No such file or directory
.................
................. 

但是正如我所提到的,它需要很长时间来处理,有时它会被击中,所以任何人都可以告诉我如何使用来自 linux 终端的命令按名称搜索特定文件夹,这将非常快并且应该搜索上面我使用的整个文件系统'/'

编辑

实际上我的意图是apache-tomcat-7.0.37在整个文件系统中搜索文件夹,

例如,在文件系统的不同位置可能有许多文件夹,如apache-tomcat-6.0.45, apache-tomcat-5.1.7, .........apache-tomcat-5.0.37

所以我们可以观察到只有最后一部分(数字部分)正在改变并且整个文件夹名称是相同的,所以有没有办法搜索这些类型的文件夹而不管最后一个数字部分,比如使用正则表达式或类似的东西。

最后我的目的是在整个文件系统上找到该格式的文件夹apache-tomcat-xxxxxxx,因为如果我们只搜索apache-tomcat我们会得到数百个结果,有时甚至会得到数千个结果,这很难从它们中分析和搜索?

4

2 回答 2

2

尝试这个:

locate apache-tomcat

它使用一个数据库(由热闹的命名更新updatedb,您可以运行它sudo updatedb来刷新搜索索引)。

于 2013-02-26T13:58:46.857 回答
0
locate apache-tomcat | grep -E '^apache-tomcat-[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+$'

或者只是使用[0-9]而不是[[:digit:]]. 这可能更具可读性。或者

locate apache-tomcat | perl -ne 'print if /^apache-tomcat-\d+\.\d+\.\d+$/'

无论你做什么,你肯定要使用,locate而不是find,因为它会快得多

于 2013-02-26T14:32:25.950 回答