2.22 find命令
1.which命令
which命令从环境变量PATH中搜索一个命令的绝对路径,例如:which ls
2. whereis命令
搜索一个文件/命令,不常用,事先在一个准备好的库(固定时间段内定期更新的库),根据更新的库来搜索,例如:whereis ls
3. locate命令
搜索文件或目录,系统不能运行#locate命令,需执行#yum install -y mlocate安装,安装后执行#locate ls命令后会提示没有/var/lib/mlocate/mlocate.db--文件列表的数据库, 需要执行#updatedb后才可(系统每天凌晨会自动生成该db库)
4. find命令
格式:#find 【路径】【-选项 参数】,在指定路径下搜索某一文件或目录所在的路径,选项包括:type--类型,name--文件名,mtime--最近更改(modify)时间(更改文件内容), ctime--最近改动(change)时间(改动权限),atime--最近访问时间(如touch),size--文件大小,mmin--最近更改时间(以分钟记)
注:对于像vi、“echo >”、head和tail追加内容 (>>)、“echo >>追加内容”等更改文件内容的命令,会同时更改mtime(modify time)和ctime(change time),因为ctime记录了文件的大小(更改文件内容后文件大小会变)、时间、权限、所有者和所属组等信息,更改文件内容则ctime一定也会更改; 而像chmod、chattr、chown、chgrp等更改文件权限、所属者和所属组的命令则只更改ctime (change time),像touch、cat、more和less等查看文件的命令会更改访问时间(atime,access time)
- #find /etc/ -name sshd_config #在/etc目录下搜索文件名为sshd_config的文件所在路径
- #find /etc/ -name sshd* #在/etc目录下进行模糊搜索(文件名不清楚,使用通配符*)
- #find /etc/ -type d/f -name sshd* #可指定类型:目录(d)/文件(f)进行搜索,类型包括:d--目录,f--普通文件,c--字符串文件,b--块文件,l--链接文件;命令 #stat file-1 查看一个文件file-1的具体信息,包括文件名、文件大小、inode号、3种时间、硬链接、权限等
- #find /etc/ -type f -mtime -1 #搜寻/etc目录下一天以内更改过的所有文件(-1表示1天以内,+1表示1天之前的);其中多种条件是“与关系”
- #find /etc/ -type f -o -mtime -1 -o -name “*.conf” #其中“-o” 表示多种条件是“或关系”
- #find /root/ -type f -mmin -60 #搜寻/root目录下一小时以内更改过的所有文件
- #find /root/ -type f -mmin -120 -exec ls -l {} \; #表示搜寻/root目录下两小时以内更改过的所有文件并列出来,其中“{ }”表示搜寻出来的文件列表
- #find /root/ -type f -mmin -180 -exec mv {} {}.bak \; #表示搜寻/root目录下3小时以内更改过的文件并将每个文件改名(后面加上.bak)
- #find /root/ -type f -size +10k #表示搜寻/root目录下大于10k的文件(+10k表示大于10k,-10k表示小于10k),文件大小以兆字节为单位时只能是大写M,不能写m
- 对于硬链接文件不好找的问题,要想找到硬链接文件,就需要找到硬链接文件对应的inode号:#find / -inum XXXXX, 即搜索根目录下inode号为XXXXX的硬链接文件
2.23 文件名后缀
在Linux下文件名后缀不严谨,可以自定义文件名,可以自定义文件名的后缀,但文件名后缀并不能代表文件的类型,只是管理员习惯上把相同类型的文件定义相同的后缀名,方便区分