搜索命令之locate、whereis、which、find、grep
whereis
搜索命令所在路径及帮助文档所在位置
也可以通过 whereis 命令来判断是否是shell内部命令
which
搜索命令所在路么及别名
与whereis的区别在于 which 不仅可以查看命令所在路径,还可以查看到命令的别名
locate
搜索文件名最快的方式,根据后台数据库/var/lib/mlocate搜索
updatedb 命令手动更新数据库,数据库更新不是即时的,一般需要一天 /etc/updatedb.conf 配置文件,用于配置搜索限制
find
最强大的搜索命令,但同时带来性能问题
find [搜索范围] [搜索条件]
-name 按文件名搜索 -iname 不区分大小写搜索 -user 按照所有者搜索 -nouser 查找没有所有者的文件 -mtime 按修改文件的日期搜索,如:+10 查找10天前修改的文件, -10 查找10内修改的文件, 10 查找10天当天修改的文件 -atime 文件访问时间 -ctime 改变文件属性时间 -size 按照文件大小按索,如: find . -size 25k,注意 k 是小写, M是大写 -inum 按照i节点查找文件 -a 逻辑与 and,两个条件都满足,如: find /root -size +20k -a -size -1M 查找大于20k且小于1M的文件 -o 逻辑或 or,两个条件满足一个即可 -exec 命令 {} \; 对搜索结果执行操作,如: find /root -size 25k -exec rm -rf {} \; 查找/root目录下25k大小的文件之后删除
grep
在文件中搜索符合条件的字符串
选项: -i 忽略大小写 -v 排除指定字符串
grep 是包含匹配,只要含有匹配的字符串,一整行都会输出;find 是完全匹配,只输出文件名完全一样的文件