linux - 从终端在 linux 中搜索/查找名称带有整数的文件夹

标签 linux search command find locate

我在我的机器上使用 fedora 15。实际上,我试图通过在整个文件系统中搜索来找到名称类似于 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 终端定位/查找/搜索所有这些文件夹路径。

我用谷歌搜索了很多,得到了一些命令,比如 locatefind 如下所示

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

上面的命令列出了所有文件夹,包括文件夹的额外不需要的信息,所以实际上我想要的是,只需要搜索名称类似于 apache-tomcat-x.x.x,apache-tomcat 的文件夹-xx.xx.xx

此处文件夹名称中的起始词 apache-tomcat 相同,只有整数部分(版本号)发生变化。所以我想找到所有具有不同版本号的文件夹,比如使用正则表达式代替整数来查找文件夹

所以任何人都可以让我知道如何使用带有正则表达式的命令或类似的命令来搜索上述场景的文件夹,该命令可以找到名称为 apache-tomcat-xx.x.xxx.....

最佳答案

这应该找到所有具有模式 apache-tomcat-X.Y.Z 的文件、目录、链接等,其中 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]\+"

关于linux - 从终端在 linux 中搜索/查找名称带有整数的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15105029/

相关文章:

用户空间中的 Linux 中断处理

c++ - 在 C++ 应用程序中链接到错误的库版本

c - C 程序中的搜索和排序?

php - 将 DOC 和 PDF 内容与 PHP 中的字符串进行匹配

java - 命令的正则表达式帮助

c++ - 无需等待在命令行应用程序中按下输入即可获取键盘事件

linux - vim 搜索并用不同的字符串替换连续出现的字符串

java - Hibernate Search 空间构面查询首先运行 5 次,然后仅返回第 5 个结果

python - 如何在 Python 中只查找总 RAM

linux - iframe 病毒,需要从 linux 服务器上的所有 phps 和 html 文件中删除