如何在fedora中通过终端查找特定文件夹

时间:2013-02-26 13:52:08

标签: linux search terminal command directory

目前我正在使用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.45apache-tomcat-5.1.7apache-tomcat-5.0.37 ...........

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

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

2 个答案:

答案 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,因为它会更多更快。