脚本文件名的查询
which : 寻找执行文件
可以将所有path目录中可以找到的命令列出,要也就是根据path环境变量所规划的路径去查询文件名
比如 which ifconfig
用roo账号和一般账号是不同的
前者可查出正确的执行文件名
/sbin/ifconfig
用一般用户是找不到的
which cd没法查找
因为cd是bash内置的命令,但which默认是查找path内所规范的目录,所以当然找不到
文件名的查找
一般命令有三种,whereis locate find 一般是用whereis 和locate 因为这两者是利用数据库啊查找数据的,而find是查找硬盘,数据较慢。
whereis 寻找特定文件
whereis ifconfig 发现root和一般用户都可以找到这个文件
因此,当找不到某些命令的时候,先用文件查找试试看
参数:-b只找二进制文件
-s 只找source源文件
locate
参数 -i 忽略大小写的差异
这个locate更简单,直接在后面输出文件的部分名称
但是这个命令有限制,因为是查找数据库的,这个数据库是在/var/lib/mlocate/里面的数据,二数据库创建是默认每天执行一次,因为当新建文件后查找该文件,locate会找不到
因此必须要更新数据库。
手动更新数据库:直接输入updatedb,就行。updatedb会读取/etc/updatedb。conf这个配置文件的设置,再去硬盘查找文件名的操作,最后更新整个数据库文件,因为updatedb会去查找硬盘,因此会耗时数分钟。
find
与时间有关的参数:-atime -mtime
-mtime n:n为数字,意义在n天之前的一天之内更改过得文件
-mtime +n:列出在n天之前的更改过的文件名
-mtime -n: 列出n天之内更改过的文件名
find / -mtime 0
0代表目前的时间,所以从现在开始到24小时前
参数2:-user anme:name为账户名
比如 find /home -user c 找出任何一个用户在系统中的所有文件