which命令
which命令只能用来查找PATH环境变量中出现的路径下的可执行文件。有时我们不知道某个命令的绝对路径时可以使用which命令来查找
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
whereis 命令
whereis命令通过预生成的一个文件列表库查找与给出的文件名相关的文件,使用格式为:whereis 参数 文件名 其参数如下
- b:只查找二进制文件
- m:只查找帮助文件(在man目录下的文件)
- s:只查找源代码文件 whereis命令类似于模糊查找,只要文件中包含要查找的字符,都会显示出来。
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
locate命令
locate命令类似于whereis,也是通过查找预生成的文件列表库来告诉用户要查找的文件在哪里,后面直接跟文件名。一般机器上没有安装这个软件包,使用yum install -y mlocate 安装。在安装完毕之后第一次使用会报错,因为系统上没有生成文件列表库,可以通过使用updatedb命令立即生成这个库,但是如果机器上正运行着重要业务最好不要运行这个命令,因为一旦执行,服务器的压力会增加。
[root@localhost ~]# locate more
/usr/bin/more
/usr/bin/xzmore
/usr/bin/zmore
/usr/share/bash-completion/completions/more
/usr/share/man/man1/more.1.gz
/usr/share/man/man1/xzmore.1.gz
/usr/share/man/man1/zmore.1.gz
[root@localhost ~]#
这个命令精确度不高,往往搜索结果会很多,所以这个命令并不常用。
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=套接字文件。