我喜欢使用 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*
您将获得文件的完整路径