linux学习之文件查询
1. 可执行性文件的查询:which
原理:按照PATH环境变量的内容去查询
格式: which [-a] command
注:bash内置的命令找不到,比如cd命令
2. 查找文件
2.1 快速查找文件(相对于下面find命令):whereis/locate
原理:查找linux操作系统的数据库文件
解析:这里所说的数据库:linux操作系统会将系统的所有文件都存放在/var/lib/mlocate这个数据库文件里,因此使用whereis 或者locate不需要查找硬盘,执行速度快
限制:linux操作系统数据库默认每天更新一次,因此使用whereis或者locate的查找文件的实时性差(即新建的文件,使用locate或是whereis命令可能查找不到)
解决方式:可以对linux数据库文件手动更新
格式:locate/whereis 文件名
2.2 通过查询硬盘查找文件,速度慢但功能强大:find
格式:find pathname [option] [-print -exe -ok...]
path:为find所查找的目录
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
举例find经典的用法
1.通过文件名查找文件
find / -name “*.log" :在/目录下查找以log结尾的文件
注意:以文件名查找:-name
2. 按照目录和文件的权限查找
find /opt/soft/test/ -perm 777 :查找/opt/soft/test/目录下 权限为 777的文件
注意:文件权限option为-perm
3.按目录或文件的大小进行查找
find /home -size +512k : 查大于512k的文件
注意:文件大小option为-size 大于用+ 小于用-
4.找出/etc目录下,容量大于50kb且文件所有者不是root的文件
find /etc/ -size +50kb -a -user root;
find总结:
若是并列查找利用-a
若是或查找利用-o