chapter7:Linux文件与目录管理之(3)命令与文件查询
一.脚本文件名的查询
which----寻找执行文件
which [-a] command
-a:将所有由PATH目录中可以找到的命令都列出来,而不是只列出第一个
\
alis后面是命令别名,也就是说,输入ls相当于输入后面的一些内容.
说明:这个命令是根据PATH里面的路径去找.且which后面要加的是完整的文件名.
二.文件名的查找
通常使用whereis /locate ,而find用的不多.只有在实在找不到时才用find,因为whereis 和locate都是利用数据库来查找,所以速度快.而find是在硬盘上查找.
(1)whereis (查找特定的文件)
whereis [-bmsu] 文件名或者目录名
-b: 只找二进制文件
-m: 只找说明目录/man下面的文件
-s: 只找source文件
-u: 找不在上面三个选项中的特殊文件
(2)locate
locate [-ir] keyword
-i: 不管大小写
-r:后面可以接正则表达式
使用locate的时候,直接在后面输入"文件的部分名"就可以得到结果.这是与whereis的一个不同的地方.如下图
可以看到,只有使用locate才可以.
注意:
whereis与locate还有使用上的限制,使用它们的时候,数据是从已经创建的数据库/var/lib/mlocate里面找的.所以速度很快,但是数据库默认的是每天更新一次,所以有可以找不到最新的文件,这个时候我们可以输入updatedb更新数据库,这个命令会读取/etc/updatedb.config这个配置文件的设置,再去硬盘里面进行更新操作.这个过程要花费几分钟.
(3)find
find [PATH] [option] [action]
1.查找/home下属于chuiyuan用户的文件
2.查找系统中不属于任何人的文件
通过这个命令可以找出不正常的文件,不过有时候也是正常的,特别是以源码的方法编译软件的时候.
3.找出文件名为vi1test1的文件
vi1test1为新文件,所以使用locate是无法找到的.如下图
4.找出目录/var下类型为socket的文件名
5.通配符查找