每天学点linux之-locate,whereis,which,find,

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每天学点linux之-locate,whereis,which,find,相关的知识,希望对你有一定的参考价值。

文件搜索命令

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自带的,找不到,whereiswhich能找到的都是后来安装的命令

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的文件然后删


本文出自 “榕树下的说书人” 博客,请务必保留此出处http://woaijorden.blog.51cto.com/5299493/1972868

以上是关于每天学点linux之-locate,whereis,which,find,的主要内容,如果未能解决你的问题,请参考以下文章

每天一个linux命令(17):whereis 命令

每天一个linux命令(17):whereis 命令

每天一个Linux命令(17)--whereis命令

Linux之locate命令

每天学点linux之-mkdir和cd

每天学点Linux命令之umask