今天学习了find的使用和用法,东西有点琐碎,整理一下。
正则表达式
文件查找基本有两种方法 locate和find。locate的查找是非实时的,而且是模糊匹配,是根据全系统文件数据库进行的。也能够手动生成数据库就是updatedb这个命令,可是特别特别慢,要扫描全系统的。locate搜查的速度快,其余就没什么优点了,在这里只是略加介绍,就很少学习了。find的优点在于,实时,精确,而且支持众多查找目标,可是觉得是遍历指定目录中的全部文件来完成查找的,因此速度有点慢。
数据库
下面咱们就来讲下find的查找路径,查找标准,查找到之后的处理运做。
find 查找路径 查找标准 查找到之后的处理运做
查找路径:默认为当前目录
查找标准:默认为指定路径下的全部文件
处理运做:默认为显示
匹配标准:
-name 'FILENAME':对文件名做精确匹配
文件名通配:
*:任意长度的任意字符
?:任意单个字符
[]:表示一个范围
-iname 'FILENAME': 文件名匹配时不区分大小写
-regex PATTERN:基于正则表达式进行文件名匹配
-user USERNAME: 根据属主查找
-group GROUPNAME: 根据属组查找
-uid UID: 根据UID查找
-gid GID: 根据GID查找
-nouser:查找没有属主的文件
-nogroup: 查找没有属组的文件
-type :根据文件类型来查找
f: 普通文件
d:目录文件
b:块设备文件
c:字符设备文件
l:符号连接文件
p:命令管道文件
s:套接文件
-size [+|-]指定查找大小的文件
#k
#M
#G
-size +100K 大于100K的文件 默认为字节
组合条件:
-a:两个条件同时知足才显示
-o:或条件
-not :非
这里是分前后顺序的 默认 not先于a先于o
按时间查找
-mtime: -mtime +5至少有五天没有访问
-ctime: -ctime -5表示五天以内修改过
-atime:-atime 恰好五天以前修改过
[+|-]#
-mmin 用法同上,不过表示的是分钟
-cmin
-amin
[+|-]#
-perm MODE:精确匹配 根据权限精确查找
/MODE: 任意一位匹配即知足条件 例如查找644,只要符合6,4,4任何一个都行
-MODE: 文件权限能彻底包含此MODE时才符合条件
必须彻底包括才行 例如 644 必须大于644才行 655 654 764
运做:
-print: 显示
-ls:相似ls -l的形式显示每个文件的详细
-ok COMMAND {} \; 每一次操做都须要用户确认
-exec COMMAND {} \;不须要确认,(COMMAND命令)
这就是find的基本用法,基本语法。
嘿嘿,每记一次印象就更深一次。再在联系中多多使用就会彻底记住的,可能如今这些对我有点难,可是我相信我能够作好的ide