1

私は自分のマシンでfedora15を使用しています。実際、私はapache-tomcat-7.0.37ファイルシステム全体を検索するような名前のフォルダを見つけようとしています

実際、私はパスに以下のようないくつかのフォルダを持っていました/opt/tomcat/

apache-tomcat-7.0.37
apache-tomcat-6.0.34
apache-tomcat-7.0.67
.........

そして、いくつかのフォルダは/usr/share/tomcat/

apache-tomcat-4.0.7
apache-tomcat-6.0.4
apache-tomcat-8.0.6
.........

だから私はコマンドを使用してLinuxターミナルからこれらすべてのフォルダパスを見つけ/検索/検索することです。

私はたくさんグーグルして、以下のようないくつかのコマンドを手に入れlocateましfind

find / -name apache-tomcat*
locate apache-tomcat 

上記のコマンドは、フォルダの余分な不要な情報を含むすべてのフォルダを一覧表示しているので、実際に必要なのは、次のような名前のフォルダのみを検索する必要があることです。apache-tomcat-x.x.x,apache-tomcat-xx.xx.xx

ここでフォルダ名の開始語apache-tomcatは同じで、整数部分(version number)のみが変更されます。整数の代わりに正規表現を使用してフォルダを検索するなど、バージョン番号が異なるすべてのフォルダを検索したいのです。

apache-tomcat-xx.x.xxxですから、正規表現を使用したコマンドを使用するか、名前の付いたすべてのフォルダーを検索するようなコマンドを使用して、上記のシナリオのフォルダーを検索する方法を教えてください。

4

2 に答える 2

3

これにより、パターンapache-tomcat-XYZを持つすべてのファイル、ディレクトリ、リンクなどが検索されます。ここで、X、Y、およびZは整数です。

find . -regextype sed -regex ".*/apache-tomcat-[0-9]\+\.[0-9]\+\.[0-9]\+"

ディレクトリのみを探している場合は、次のバリアントを使用してください。

find . -type d -regextype sed -regex ".*/apache-tomcat-[0-9]\+\.[0-9]\+\.[0-9]\+"

/で始まるシステム全体を検索する場合は、次のバリアントを使用します。

find / -type d -regextype sed -regex ".*/apache-tomcat-[0-9]\+\.[0-9]\+\.[0-9]\+"
于 2013-02-27T05:56:45.060 に答える
2

locateシステム全体を高速に検索するために、に適切な正規表現を指定できます。

locate -b --regex "apache-tomcat-[0-9]+.[0-9]+.[0-9]+$"

の使用と同様に、使用locateするファイルデータベースは十分に最新である必要があります。十分な権限がある場合はsudo updatedb、強制的に更新することができます。

于 2013-02-27T06:01:54.057 に答える