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
网友评论