非实时,模糊匹配\(非精确查找\)查找是根据全系统文件数据库进行的
#updatedb 手动生成文件数据库
速度快
操作系统完成后,每天晚上(取决于任务计划)都会将本系统上的所有文件的相关信息保存在数据库中
实时
精确
支持众多查找标准
遍历指定目录中的所有文件完成查找,速度慢
find 查路径 查找标准 查找到以后处理的动作
查找路径:默认为当前路径
查找目标:默认为当前路径下所有文件
处理动作:默认为显示
匹配标准(查找标准)
`-name 'FILENAME':对文件名进行精确查找
`
文件名匹配
` *,?,[]等
`
-iname 'FILENAME':文件名匹配时不区分大小写
-regex PARTTERN:基于正则表达式进行文件匹配
-user USERNAME:基于文件属主进行文件查找
-group GROUPNAME:基于文件属组进行查找
-uid UID:根据UID进行查找
-gid GID:根据GID 进行查找
如果删除了某用户,则属主是该用户的文件的属主变为该用户的UID
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
-type:文件类型
f:普通文件
d:目录
c:字符
b:块
l:;链接
p:管道
s:套接字
-size:指定查找的文件大小
默认单位字节
[+ | -]#k:+ 代表大于 - 小于
[+ | -]#M
[+ | -]#G
小数 会近似
`-a:与
`
-o:或
-not:非
默认为与操作
例子
[root@localhost test]# find -not \( -user test1 -o -user test2 \)
`-mtime:查找在指定时间曾被更改过的文件或目录
`
`-atime:查找在指定时间曾被存取过的文件或目录
`
`-ctime:查找在指定时间之时被更改的文件或目录
`
单位以天数为准
` [ + | - ]#
`
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟
`-perm<权限数值>:查找符合指定的权限数值的文件或目录;
`
[ - | / ]mode
-mode:每一位都要匹配
/mode:中只要有一个匹配即可
例子:
`find -perm 644
`
动作
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-ls:假设find指令的回传值为Ture,就将文件或目录的详细信息列出到标准输出,类似于ls -l;
-ok COMMAND {} \:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若回答“y”或“Y”,则放弃执行命令;
-exec COMMAND {} \:假设find指令的回传值为True,就执行该指令;
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。
它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。
xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,
不过通过xargs的处理,换行和空白将被空格取代
-d选项可以自定义一个定界符:
-n选项多行输出: