一:档案和目录篇(5)——搜寻档案
1.搜寻执行档——which
which指令主要是在PATH所包含的目录中去搜寻执行档的档名,若加上-a参数就可以搜寻除所有包含档案的信息
上面列出root账号的PATH包含的目录,which命令会在这些目录中去查看文件
如果文件不在这些目录中就会提示找不到,如下
cd档案用which找不到,因为cd不在PATH所包含的目录中,它是属于bash内建的命令。
2.whereis
whereis和locate是在数据库中查找档案的,所以查找的速度很快
3.locate
选项与参数
-i:忽略大小写的差异
-r:后面可直接更正则表达法的显示方式
locate命令会在执行的时候去读取/var/lib/mlocate中建立的数据库而不会去查询磁盘,所以搜寻速度很快
但是有时当你新建一个档案时,用locate搜寻时提示找不到是因为数据库还没有更新,手动使用updatedb命令就可以更新数据库
4.find
find命令算是功能很强大的搜寻档案指令了,它是在整个磁盘中查找文件,它有几种参数选项,分别介绍如下
1.与时间相关的选项— -atime, -ctime ,-mtime, 以-mtime介绍
-mtime n:在n天之前的(一天24小时内)被更改过内容的档案
-mtime +n:在n天之前的(不含n天本身)被更改过内容的档案
-mtime -n:在n天之内(含n天本身)被更改过内容的档案
-newer file:列出比file还要新的档案
这个选项主要是找出最近做出变动的档案,非常方便
比如列出一天前24小时内容变动的档案
列出比/home/test更新的档案
2.与使用者和组名有关的选项:
-uid n:找出uid为n的档案
-gid n:找出gid为n的档案
-user name:找出使用者为name的档案
-group name:找出群组为name的档案
-nouser :找出不存在拥有者的档案
-nogroup :找出不存在群组的档案
上面找出的档案的拥有者都是root
其他参数大家自己试试
3.与档案权限及名称有关的参数:
(1) -name file:找出文件名为file的档案
(2) -size [+-]SIZE:找出比SIZE(+)大(-)小的档案,其中SIZE可以用c(字节)、k(1024字节)表示,(-size +100k,找出大于100k的档案)
(3) -type TYPE:找出类型为TYPE的档案,其中TYPE可以用 一般档案(f)、装置档案(b,c)、目录(d)、连接档(l)、socket(s)、FIFO(p)表示
(4) -perm mode:找出档案权限刚好等于mode的档案
(5) -perm -mode:找出档案权限要全部包含mode的档案
(6) -perm +mode:找出档案权限包含任一mode的档案
4.额外可进行的动作:
-exec command:-exec后面接其他指令,可以额外出来搜寻出来的结果