查找文件

locate

作用相当于find -name,但是locate速度会比find快很多,因为locate命令也是用数据库查找的。

因为该数据库默认是一天更新一次的,所有使用locate命令有可能找不到最近新建的文件。这时就需要手动更新数据库,命令很简单,直接在终端中输入sudo updatedb就可以进行更新,更新速度还是比较快的,所以在搜索文件的时候建议使用locate命令。

示例:

locate main.c

find

该命令直接查找硬盘,所以花费时间比较长。该命令可以找到你想要的任何文件,下边是一些比较好用的命令。

格式 含义
find -name filename 在根目录中寻找名字为filename的文件
find -name s 在目录里面搜索带有s的文件
find -name *s 在目录里面搜索以s结尾的文件
find -name s* 在目录里面搜索以s开头的文件
find -amin -10 在系统中搜索最后10分钟访问的文件
find -atime -2 查找在系统中最后48小时访问的文件
find -mmin -5 查找在系统中最后5分钟修改过的文件
find -mtime -1 查找在系统中最后24小时修改过的文件

查找文件中的关键字

grep

有些时候我们不仅仅是想找我们需要的文件,还想找到文件中的某些关键字,这个时候我们就需要借助Ubuntu自带的强大的搜索工具——grep grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

find / -name '*' | xargs grep 'timersub'

通过使用find与grep使我们能够更好地找到文件中的关键字。 上边的指令就是通过find与grep相结合查找所有子文件中包含timersub关键字的文件,如果文件中包含该关键字,在终端中就会打印出来。

直接使用上边的指令进行搜索的时候,会出现很多的Is a directory无关紧要的提示信息,我们可以借助grep -r只搜索子目录的内容就能够避免提示。将上边的命令改为:

find / -name '*' | xargs grep -r 'timersub'

Recent Posts