当前位置: 首页>>技术问答>>正文


如何递归搜索具有特定字符串的目录名称,其中字符串只是目录名称的一部分

,

问题描述

如何递归搜索具有特定字符串的目录名称,其中字符串只是目录名称的一部分?

例如:目录名称是”8.0.3-99966_en”,但我想以递归方式搜索字符串为”99966″的目录。

最佳解决办法

您可以使用find命令:

find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print

例:

find ~ -type d -name "*99966*" -print

应找到从您的主目录(~)开始的所有目录(-type d),其名称包含字符串”99966″(-name "*99966*")并输出它们(-print)。

次佳解决办法

要避免所有”Permission denied”结果,您可以使用:

find / -type d -name "*99966*" -print 2>/dev/null

有关详细信息,请参阅null device上的这篇文章和standard streams上的这篇文章。

第三种解决办法

您可以将输出通过管道传输到grep,以使其突出显示目录名称

find / -type d | grep "directory name"

/表示搜索整台计算机

第四种办法

一种简单的方法是使用find | egrep string。如果命中次数过多,请使用-type d标志进行查找。在要搜索的目录树的开头运行该命令,或者您也必须将该目录作为参数提供给find

另一种方法是使用ls -laR | egrep ^d

locate命令也派上用场:locate string

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1592.html,未经允许,请勿转载。