Linux下文件和命令的查找有四种常用的方式,分别是which、whereis、locate、find
第一种:which
查找在PATH变量中的路径下的文件的路径,显示的绝对路径;
第二种:whereis
查找在PATH变量和MANPATH变量中的路径下的文件的路径,显示的结果是文件的绝对路径以及man手册所在路径
第三种:locate
读取一个或多个由updatedb准备的数据库,在“/”下进行模糊查找,显示的结果是找到文件的绝对路径;
注意:在centos7中默认没有该命令,需要使用yum install mlocate -y下载,在最开始使用的时候需要调用updatedb命令,对于新建和刚删除的文件使用locate命令可能会有所偏差,因为数据库中的数据可能没有更新,可以在使用locate之前先调用updatedb;
第四种:find
在指定路径下查找文件
一般格式:find [path] [选项] 文件
常见的选项:
1. -name:根据名字精确查找,如果相模糊查找的话可以使用通配符;
find -name "test.sh"
find / -name "*hello*"
2. -iname:根据名字精确查找,但是不区分大小写,与-name类似;3. -size:根据文件的大小查找,“-”代表比某个值小的文件,“+”代表比某个值大的文件,常用的单位有k,M,G;
4. -type:根据文件的类型查找
常见参数:
f:file,普通文件
d:directory,文件夹
b:block,块设备文件
l:link,链接文件
s:socket,socket文件
c:character,字符设备文件
p:pip,管道文件
5. -user:根据文件的属主查找
6. -perm:根据文件的权限查找
7. -mtime/ctime/atime,-mmin/cmin/amin:根据文件的更改时间(改内容)/改动时间(改属性)/访问时间 来查找文件,time是以天为单位,min是以分钟为单位
常见参数:
+ num:查找num时间之前的文件
num:查找num之前那一天或那一分钟的文件
- num:查找num时间以内的文件
8. -exec:将find找到的结果作为参数
find . -name 1.txt -exec cp {} /lianxi/jiang \;
9. |xargs:跟-exec类似
find . -name "test.sh"|xargs rm -f
10. -a,-o:逻辑与,逻辑或,find默认是逻辑与,如果都存在的话,逻辑与的优先级高