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.45apache-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 に答える