linux 命令与文件的查询

来源:互联网 发布:access数据库的扩展名 编辑:程序博客网 时间:2024/06/08 17:36

脚本文件名的查询

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 找出任何一个用户在系统中的所有文件

0 0