Find 命令详解
find:
实时查找工具, 通过遍历指定路径完成文件查找;
工作特点:
查找速度略慢
精确查找
实时查找
可能只搜索用户具备读取和执行权限的目录
语法:
find [OPTION]… [查找路径] [查找条件] [处理动作]
查找路径: 指定具体目标路径; 默认为当前目录
查找条件: 指定的查找标准, 可以文件名、 大小、 类型、权限等标准进行; 默认为找出指定路径下的所有文件
处理动作: 对符合条件的文件做操作, 默认动作为标准输出,输出至屏幕
查找条件:
(1)根据文件名和inode查找:
-name “文件名称“: 支持使用glob
*, ?, [], [^]
-iname “文件名称“: 忽略字母大小写
-inum n 按inode号查找
-samefile name 相同inode号的文件(其实等于查找硬链接,基本不用)
-links n 链接数为n的文件
-regex “PATTERN”: 以PATTERN匹配整个文件路径字符串, 而不仅仅是文件名称
(2)根据属主、 属组查找:
-user
USERNAME: 查找属主为指定用户(UID)的文件
-group GRPNAME: 查找属组为指定组(GID)的文件
-uid UserID: 查找属主为指定的UID号的文件
-gid GroupID: 查找属组为指定的GID号的文件
-nouser: 查找没有属主的文件或目录
-nogroup: 查找没有属组的文件或目录
(3)根据文件类型查找:
-type TYPE:
f: 普通文件
d: 目录文件
l: 符号链接文件
s: 套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件
(4)组合条件:
与: -a
或: -o
非: -not, !
(5)根据文件大小来查找:
-size
# 等于多少的文件
+# 大于多少的文件
-# 小于多少的文件
(6)根据时间戳:
以“ 天” 为单位;
-atime [+|-]#,
#:
[#,#+1)
+#:
[#+1,∞]
-#:
[0,#)
-mtime
-ctime
以“ 分钟” 为单位:
-amin
-mmin
-cmin
(7)根据权限查找:
-perm
222 精确匹配有222权限的文件
-222 u,g,o必须全部符合
+222 u,g,o有一个符合就行(cen7是/222)
find -perm 755 会匹配权限模式恰好是755的文件
只要当任意人有写权限时, find -perm +222就会匹配
只有当每个人都有写权限时, find -perm -222才会匹配
只有当其它人( other) 有写权限时, find -perm
-002才会匹配
处理动作:
-print: 默认的处理动作, 打印至屏幕;
-ls: 类似于对查找到的文件执行“ ls -l”命令
-delete: 删除查找到的文件;不能删除非空目录
-fls file: 查找到的所有文件的长格式信息保存至指定文件中
-ok
COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令;
对于每个文件执行命令之前, 都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令
{}: 用于引用查找到的文件名称自身
;是固定用法
注意:
(1)find传递查找到的文件至后面指定的命令时, 查找到所有符合条件的文件一次性传递给后面的命令
(2)有些命令不能接受过多参数, 此时命令执行可能会失败, 下面方式可规避此问题
find | xargs COMMAND(生产常用的操作方式)
原创文章,作者:张 洁,如若转载,请注明出处:http://www.178linux.com/73030
评论列表(1条)
详细的总结介绍了find命令的用法,内容很好,建议将命令或代码块入到”插入程序代码”中,文字上注意下缩进