您的位置:首页 > 其它

文件搜索命令 locate、find、whereis、which

2016-10-26 15:19 501 查看

文件搜索命令

locate 文件名
在后台数据库中按文件名搜索,速度更快

这个数据库是
/var/lib/mlocate
,它的更新速率默认是一天一次,Linux版本的不同,名字不同,Mac下在
/var/db/locate.datebase


可以使用
updatedb
命令强制更新数据库,Mac下是
sudo /usr/libexec/locate.updatedb
,根据距上次更新后更改的文件数目多少,速度不同

只能通过文件名来搜索

遵守
/etc/updatedb.conf
配置文件里的筛选规则,所以即使你更新了数据库也不一定能locate到所要寻找的文件

搜索命令的命令

whereis【选项】命令名

-b
 只查找可执行文件
-m
 只查找帮助文件

Mac用不了这两个选项
which 命令名


可以查看别名,Mac也没这个功能
cd
命令是shell自带的,找不到,
whereis
which
能找到的都是后来安装的命令

PATH环境变量

Linux从
PATH
定义的路径中找寻命令,所有命令不用麻烦打绝对路径
echo $PATH
查看路径,
:
隔开

文件搜索命令

find【搜索范围】【搜索条件】

-name
 按照文件名搜索
-iname
 文件名不区分大小写

Linux中的通配符

#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配的。

* 匹配任意内容(任意多个字符)

? 匹配任意一个字符

[] 匹配任意一个中括号内的字符

find desktop/ -name "ab[cd]"
匹配abc或abd

按照所有者来搜索

-user
 按照所有者搜索,如
find /root -user root
是找root目录下所有者为root的文件
-nouser
 是找没有所有者的文件,如
find /root -nonuser
是找root目录下没有所有者的文件

按照时间来搜索

find 【搜索范围】 -(X)time (+/-)时间


find /root -mtime +10
是查找十天前修改的文件
+10
 10天前修改的文件
10
 10天当天修改的文件
-10
 10天内修改的文件
atime
 访问文件的时间
ctime
 改变文件属性的时间
mtime
 修改文件内容的时间

按照大小来搜索

find 【搜索范围】-size (+/-)X(k/M)


小写
k
是kB,大写
M
是MB

find /root -size +10k
是查找root目录下大小大于10kB的文件

按照i节点来搜索

find 【搜索范围】-inum 【i节点号】


ls -i 【文件名】
正好相反

多条件查询

find /root -size +20k -a -size -50k
查找20~50kB大小的文件
find /root -size -20k -o -size +50k
查找小于20或者大于50kB的文件
find /root -size +20k -a -size -50k -exec ls -lh {}\;
查找20~50kB的文件,并列出详细信息
-exec/-ok 命令 {} \;
用来继续处理搜索到的文件
find /root -inum 606838 -exec rm -rf {} \;
找到i节点号为606838的文件然后删除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: