可以使用grep简单地查找目录结构中的文件?

我喜欢使用grep,但有时我只想search目录树中文件的名称,但不希望grep打开文件并在其中进行search。 可以grep做到这一点?

这个问题有很多答案,但最正确的传统unix答案是使用find(1):

find / -type f -name foo\* 

会在当前目录下find每个以foo开头的文件

尝试一个正则expression式,就像

 ls -R |grep ^a 

这将列出所有文件和子目录,以及将过滤以。开头的名称。

这不包括path。

有很多方法可以在linux中查找文件。 我认为最好的是两个。 find并find' find 'function更强大,然后find。 查找命令有一个限制,也就是它的速度,它给你的search结果。 这个问题已经通过locate命令解决了。 它存储了整个目录的一个本地caching树(通过运行UPDATEDB命令手动build立),当你想要search一个文件时,只需使用“locate filename”即可得到结果。 当速度问题,使用定位,其他任何使用find命令。

你也可以使用locate命令

所以首先你应该通过发布updatedb命令来更新定位Db(注意完成时可能需要一些时间)

比跑

 locate foo* 

你会得到完整的文件path