find、which、locate、whereis
在Linux系统中有这几个搜索命令,find which locate whereis
一、which命令
which命令比较常用,格式为which filename, which命令只能查找PATH环境变量中出现的路径下的可执行文件,用它可以查看一个可执行文件的绝对路径以及有没有别名
[root@test-01 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
二、whereis命令
whereis命令不常用,格式为whereis_ -参数 filename_ 参数及含义如下:
- -b: 只查找二进制文件
- -m:只查找帮助文件(在man目录下的文件)
- -s:只查找源代码文件
[root@test-01 ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
whereis命令类似于模糊查找,如上所示,运行whereis ls 只要带有ls字符,就会被列出来
三、locate命令
首先安装mlocate包才能运行locate命令,
[root@test-01 ~]# yum install -y mlocate
并且首次使用会报错,因为系统没有生成mlocate.db这个库,可以使用updatedb命令
立即生成,如果服务器在跑业务,最好不要执行这条命令, locate命令也是模糊查找,在搜索到的列表中,不管是目录还是文件,只要包含我们所查找的字符,就会被列出来,所以locate不适合精确查找。
四、find命令
find命令是最常用的搜索命令,格式为find [路径] [参数]
- -atime +n /-n:表示访问或执行时间大于(+)、或小于(-)n天的文件
- -ctime +n /-n:表示写入、更改inode属性(所有者,权限,链接等)的时间大于(+)、或小于(-)n天的文件
- -mtime +n/-n :表示写入时间大于或小于n天的文件
还有一种写法是-mmin -10 ,这就表示10分钟以内的文件
find命令还有一种常用的方式:
find -name filename:表示直接查找该文件名的文件,这个用法支持通配符* ,
[root@test-01 ~]# find /usr/bin/ls*
/usr/bin/ls
/usr/bin/lsattr
/usr/bin/lsblk
/usr/bin/lscpu
/usr/bin/lsinitrd
/usr/bin/lslocks
find -type_ filetype_:可以通过文件类型来查找文件
filetype 包括 f =文件 ,b=块设备,比如磁盘分区。l=软链接,c=串行端口(字符串设备),d=目录,s=套接字文件。