这一部分主要学习了如何搜索文件。


常用的文件搜索命令有locate,which,whereis和find, 下面依次看看


locate是通过一个数据库来利用名字搜索。他的速度很快,不过数据库更新比较慢,一周才更新一次,因此最新的信息可能找不到,需要手动更新updatedb之后才能查到


例如

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_第1张图片


which 和 whereis 一般用来搜索某个命令所在的路径


wKioL1SrIDeDEeGgAACQak055Rk959.jpg


下面重点来看看 find

find 的基本语法格式是  find 目录 -属性 值

如果不设置目录,默认为当前目录

属性主要通过以下8个方面来搜索

-name

-size

-user/group

-uid/gid

-perm 

-type

-ctime/cmin

-newer


例如


wKiom1SrH3mCJzVgAABrUuQFQMI361.jpg


例1: 通过-name 名字来搜索 ,如果要忽略大小写,可以用-i, 这和grep一样

wKioL1SrIDijuluBAAA3wNkGL4A995.jpg

wKiom1SrH3qyxZ0LAAA0OxqdA9E596.jpg

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_第2张图片


例2: 通过- size 来搜索,首先创建4个块文件,分别是1M,2M,3M,4M

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_第3张图片


+2M代表2M以上,-4M则表示4M以下

wKioL1SrIDqiP1uiAAA85Vq7Ta0342.jpg


-a 表示 and(和), -o 表示or (或者),可以利用这种方式设置多组条件

wKiom1SrH3yTg_eeAAA8FeFVcWA357.jpg

wKioL1SrIDvQTytZAABs5xue5dU573.jpg


注意,find的默认搜索是递归的搜索,会搜索当前目录下的所有子目录,因此他连子目录test也显示了

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_第4张图片


例3 通过 -user/group 搜索,也可以通过-uid/gid 搜索

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_第5张图片


例4: 通过 -perm 进行权限的搜索,注意-表示所有的条件必须全部满足;而/表示u,g,o满足任何一项的条件即可


RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_第6张图片


例5: 通过-type 搜索类型,比如我创建了一个软连接,可以指定l来搜索


wKiom1SrH37SI8K4AAAzbNO76II246.jpg

wKioL1SrID2xjOZxAAAyLS4aKT4184.jpg



例6:  通过时间来搜索,比如创建时间超过25分钟的文件


RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_第7张图片


例7: 通过文件的比较来搜索,比如比bb2更新的文件


RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_第8张图片


find还有两种常见的组合用法,查找后执行命令 -exec 命令 {} \  ,那个{}代表的是查找的结果;或者是通过管道把结果作为参数给 xargs 后面的命令使用


例8: 输出查找文件的属性,两种方式都是可以的

 

wKioL1SrID7wK441AACehrwiWoU900.jpg