前言:
Linux文件种类繁多,难免在维护Linux中会忘记文件的路径。所有在维护Linux中学好查找命令是非常必要的。
Linux查找命令有很多,比如 whereis,type,which,locate,find(重点)。
1、whereis
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis命令的使用实例:
2、type
type命令其实不能算查找命令,它是用来区分某个命令到底是由shell自带的,还是有shell外部的独立二级制文件提供的。如果一个命令是外部命令,那么使用-P参数,会显示该命令的路径,相当于which命令。
type命令的使用实例:
3、which
which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令就可以看到系统命令是否存在,以及执行的到底是哪一个位置的命令。
常用参数:--skip-alias:去除别名。
which命令的使用实例:
这里cd命令是内建命令,因而无法查到。
4、locate
locate查找为非实时查找,也成模糊查找。locate依赖于索引,而索引构建时在系统空闲时由系统自动进行(每天任务);手动进行使用updatedb;locate命令的优势是查找速度快,劣势为非精准查找。
关于locate的其他参数使用,这里就不做详细讲解了,还请朋友们自行Google。
5、find(重点)
find命令是遍历所有文件进行条件匹配,查找速度慢但结果精确,即为精准查找。也是我们在生产环境中使用最多,最强大的文件查找工具。
查找条件:
组合条件查找:
-type TYPE:根据文件类型查找
-size [+|-]#UNIT(单位)
根据时间戳查找:
以“分钟”为单位
根据文件权限查找:
处理动作:
实战演示:
1、查找/var/目录属主为root且属组为mail的所有文件;
2、查找/usr目录下不属于root、bin或hadoop的所有文件
3、查找/etc/目录下最近一周内其内容修改多的,且不属于root或hadoop的文件;
4、查找当前系统上没有属主或属组,且最近1个月内曾被访问过的文件;
5、查找/etc/目录下大于1M且类型为普通文件的所有文件;
6、查找/etc/目录所有用户都没有写权限的文件
7、查找/etc/目录下至少有一类用户没有写权限;
8、查找/etc/init.d/目录下,所有用户都有执行权限且其他用户有写权限的文件
转载于:https://blog.51cto.com/bobbie/1664422