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

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

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

答案1

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

find / -type f -name foo\*

将查找当前目录下所有以下列名称开头的文件foo

答案2

尝试使用正则表达式,例如

ls -R |grep ^a

这将列出所有文件和子目录,并将根据以 a 开头的名称进行过滤。

但这不包括路径。

答案3

在 Linux 中查找文件的方法有很多。我认为最好的方法有两种。查找和定位寻找' 比locate强大得多。 find命令有一个限制,即它给出搜索结果的速度。 这个问题由locate命令解决。 它在其中存储整个目录的本地缓存树(通过运行UPDATEDB命令手动构建),当您想要搜索文件时,只需使用“locate filename”,您就会立即得到结果。 当速度是问题时,使用locate,对于其他任何事情,使用find命令。

答案4

你也可以使用定位命令

因此首先你应该通过发出以下命令来更新locate Db更新数据库命令(注意完成可能需要一些时间)

比跑

locate foo*

您将获得文件的完整路径

相关内容