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


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


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


例如

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_rh124


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


RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_find_02


下面重点来看看 find

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

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

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

-name

-size

-user/group

-uid/gid

-perm 

-type

-ctime/cmin

-newer


例如


RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_find_03


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

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_rh124_04

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_rh124_05

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_find_06


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

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_rhel7_07


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

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_find_08


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

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_find_09

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_rhel7_10


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

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_rh124_11


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

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_rh124_12


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


RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_rhel7_13


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


RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_find_14

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_find_15



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


RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_find_16


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


RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_rh124_17


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


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

 

RHCE 学习笔记(14)- 文件系统(2) - 搜索文件_rhel7_18