2013-02-26 53 views
1

目前我使用的linux(Fedora的15),我是个试图在整个文件系统中的文件夹搜索喜欢用下面的命令如何通过终端Fedora中找到特定的文件夹

find/-name "apache-tomcat*" 

的执行上面的命令正在采取越来越多的时间,用户不能等待和结果是像一些事情下面

[[email protected] 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 
................. 
................. 

但正如我刚才提到它是需要长时间来处理,有时它被strucked,所以任何人都可以请让我知道如何使用ac按名称搜索特定文件夹ommand从Linux终端,这将是非常快,像上面我用'/'

编辑

其实我的目的是要搜索的文件夹类似apache-tomcat-7.0.37在整个文件系统在整个文件系统应搜索,

例如可能有很多文件夹一样apache-tomcat-6.0.45apache-tomcat-5.1.7apache-tomcat-5.0.37 ...........的不同位置上的文件系统

所以因为我们只能观察到最后一部分(这是数字部分)正在改变,整个文件夹名称是相同的,所以有没有办法搜索这些类型的文件夹,而不考虑最后一个数字部分,比如使用正则表达式或somethingl那个。

最后我的意图是要找到整个文件系统格式apache-tomcat-xxxxxxx的文件夹,因为如果我们搜索刚刚apache-tomcat我们将获得数百个结果,甚至数千人有时是难以分析并从中 搜索?

+0

如果只有某种方式来过滤输出并删除不需要的结果! (这是讽刺,“男人grep”) – 2013-02-26 14:27:16

回答

2

试试这个:

locate apache-tomcat 

它使用一个数据库(由欢快名为updatedb,您可以用sudo updatedb运行刷新搜索索引更新)。

+0

谢谢,有些帮助,请你看看我上面编辑的问题? – Fedrik 2013-02-26 14:03:53

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,因为这将是更快。

+0

我已经检查了两个命令并返回了一个空的结果......实际上,我在“/opt/tomcat/apache-tomcat-7.0.37”中找到了该文件夹。所以通过运行上面的命令得到空的结果... – Fedrik 2013-02-27 05:19:27

+0

你运行'upatedb',因为在opt中的文件被创建? 'locate'从必须更新的数据库中运行。如果找到的结果是过滤器未捕获,请修复过滤器。 – 2013-02-27 12:33:14

+0

是的,我已经运行了第一个updatedb命令,并在上述两个命令后,但没有工作 – Fedrik 2013-02-27 13:05:06

相关问题