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

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

如何以递归方式搜索具有特定字符串的目录名称(其中该字符串只是目录名称的一部分)?

例如:目录名称是“8.0.3-99966_en”,但我想递归搜索包含字符串“99966”的目录。

答案1

您可以使用以下find命令:

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

例子:

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

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

答案2

为了避免所有“权限被拒绝”的结果,您可以使用:

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

请参阅此文章空设备还有这个标准流了解更多信息。

答案3

您可以通过管道将输出突出grep显示目录名称,
例如

find / -type d | grep "directory name"

表示/搜索整个计算机

答案4

一个简单的方法是使用find | egrep string。如果匹配次数过多,则使用-type dfind 标志。在要搜索的目录树的开头运行该命令,否则您还必须提供目录作为参数find

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

这个locate命令也派上用场了:locate string

相关内容