Linux文件搜索命令

2020-12-07  本文已影响0人  BlueSkyBlue

find

命令所在路径:/bin/find
执行权限:所有用户
功能描述:文件搜索。
语法:

find [搜索范围] [匹配条件]

范例:

find Au -name Sydney
-iname:不区分大小写(在Linux系统中严格区分大小写)。
-size:根据文件大小查找文件(+n 大于,-n小于,n等于)。
这里的n代表的是数据块,也就是512字节,0.5k。
#在根目录下查找大于100MB的文件
find / -size +204800
-user:根据所有者查找文件。
find / -user root

这里有一个问题。以上面的范例为例,搜索的结果中可能不仅包括Sydney,还会包括以Sydney开头的结果,例如Sydney1。

根据时间属性查找:
-amin:访问时间access。
-cmin:文件属性change。
-mmin:文件内容modify。

+n:超过n分钟的。
-n:在n分钟之内的。
n:恰好是n分钟的。

范例:

#在/etc目录下查找5分钟内被修改过属性的文件或目录。
find /etc -mmin -5

-a:表示两个条件同时满足。
-o:两个条件满足任意一个即可。
-type:根据文件类型查找,f代表文件,d代表目录,l代表软链接文件。
-exec/-ok:对搜索结果执行操作。最后需要以{} \;结尾。
-exec和-ok的区别:-ok会提示用户是否执行exec的操作。
-inum:根据i节点查找。
范例:

#在home目录下查找大于80M且小于100M的文件。
find /home -size +163840 -a -size -204800
#在home目录下查找以init开头的文件并列出详细信息。
find /home -name init* -exec ls -l {} \;

locate

命令所在路径:/usr/bin/locate
执行权限:所有用户
功能描述:在文件资料库中查找文件。
语法:

locate 文件名

范例:

locate filename

locate命令和find命令不同的地方在于,locate命令是在自己的文件资料库中查找文件。当我们使用touch命令创建文件的时候,使用locate命令无法查找的到,此时我们需要使用以下命令更新资料库。

#用于更新文件资料库。
updatedb

不要再系统负载较高的时候使用find查找,此时应当使用locate。

which

命令所在路径:/usr/bin/which
执行权限:所有用户
语法:

which 命令

功能描述:搜索命令所在的目录及其别名信息。
范例:

which ls

whereis

命令所在路径:/usr/bin/whereis
执行权限:所有用户
功能描述:搜索命令所在路径以及帮助文档路径。
语法:

whereis [命令名称]

范例:

whereis ls

grep

命令所在路径:/bin/grep
执行权限:所有用户
功能描述:在文件中搜索字符串匹配的行并输出。
语法:

grep -iv [指定字符串] [文件]
-i:不区分大小写。
-v:排除指定字符串。

范例:

grep mysql /root/install.log
上一篇 下一篇

猜你喜欢

热点阅读