我喜欢使用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