目前我正在使用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
,我们将获得数百个结果,有时甚至数千个,这很难分析和搜索它们
?
答案 0 :(得分:2)
试试这个:
locate apache-tomcat
它使用一个数据库(由名为updatedb
的滑稽更新,您可以使用sudo updatedb
运行以刷新搜索索引。)
答案 1 :(得分: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
,因为它会更多更快。