命令与文件查询
脚本可执行文件的位置。它会根据系统的PATH环境变量指定的路径来查询可执行文件的名称。
文件名查找:
whereis和locate是利用数据库来查找文件的,速度相当快;而find会实际查询硬盘,速度相对较慢。
whereis(寻找特定文件):
可以使用whereis命令来查找特定文件。使用-b选项只查找二进制文件,-m选项只查找说明文件,-s选项只查找源代码文件。
locate:
locate命令是基于预先创建的数据库/var/lib/mlocate/来查找文件。该数据库默认每天更新一次,如果想要查找最新创建的文件,需要手动更新数据库,可以输入"updatedb"命令来更新。
find:
find命令与时间、用户或用户组名、文件权限及名称有关。可以根据时间参数来查找在指定时间范围内被更改过的文件;根据用户或用户组名来查找属于某个用户或用户组的文件;根据文件权限和名称来查找符合条件的文件。
在使用find命令时,可以使用-mtime选项来设定时间范围,-uid和-gid选项来设定用户和用户组ID,-user和-group选项来设定用户名和用户组名,-name和-size选项来设定文件名和文件大小,-type选项来设定文件类型,-perm选项来设定文件权限。
示例:
- 列出过去24小时内有改动的文件:find / -mtime 0
- 查找/etc目录下比/etc/passwd文件新的文件:find /etc -newer /etc/passwd
- 查找属于vbird的文件:find /home -user vbird
- 查找系统中没有所有者的文件:find / -nouser
- 查找文件名为filename的文件:find / -name filename
- 查找大于SIZE的文件:find / -size +SIZE
- 查找小于SIZE的文件:find / -size -SIZE
- 查找文件类型为TYPE的文件:find / -type TYPE
- 查找权限刚好等于mode的文件:find / -perm mode
通过使用这些命令和选项,可以有效地查询系统中的命令和文件,以满足不同的需求。