find

2022-10-27 15:00:11 浏览数 (1)

参数

代码语言:javascript复制
-maxdepth		# 最大搜索目录深度
-mindepth		# 最小搜索目录深度
-regex 'pattern'	# 使用正则表达式
-user USERNAME		# 查找属主为指定用户的文件
-group GROUPNAME	# 查找属组为指定组的文件
-uid USERID		# 查找属主为指定uid的文件
-gid GROUPID		# 查找属组为指定gid的文件
-nouser			# 查找没有属主的文件
-nogroup		# 查找没有属组的文件
-type
	f		# 普通文件
	d		# 目录
	l		# 符号链接文件
	s		# 套接字文件
	b		# 块设备文件
	c		# 字符设备文件
	p		# 管道文件
-empty			# 空文件或目录
-size			# 按文件大小查找,单位:k,M,G,c(字节)

查找条件

根据时间戳

  • 以“天”为单位
代码语言:javascript复制
-atime n	# 范围:[n,n 1],不包括n 1
-atime  n	# 范围:[n 1,无穷大]
-atime -n	# 范围:[0,n),不包括n
-mtime
-ctime

n 查找距现在(n 1)24H前修改过的文件 n 查找距现在n24H前,(n 1)24H内修改过的文件 -n 查找距现在n24H内修改过的文件 atime:最后一次访问时间,如ls、more等,但chmod、chown等不会修改这些时间 ctime:最后一次状态修改时间 mtime:最后一次内容修改时间,如vim保存后,修改时间发生改变的话,atime和ctime也会跟着发生改变 linux不会记录文件的创建时间,除非这个文件自创建以来没有发生过改变,那么它的创建时间就是它的最后一次修改时间

  • 以“分钟”为单位
代码语言:javascript复制
-amin
-mmin
-cmin
  • 根据权限查找
代码语言:javascript复制
-perm [/|-]mode

如:find ./ -perm 755 -ls	# 搜索权限为755的文件
    find ./ -perm /777 -ls	# u,g,o只要有任意一位匹配权限7即可
    find ./ -perm -777 -ls	# u,g,o必须同时匹配权限7
  • 其他选项
代码语言:javascript复制
-print:显示到屏幕上
	find ./ -name "*.log" -print

-ls:类型于ls -l命令
	find ./ -name "*.log" -ls

-delete:删除查找到的文件
	find ./ -name "*.log" -delete

-fls FILE_NAME:把查找到的文件信息保存到文件中
	find ./ -name "*.log" -fls log.txt

-ok rm {} ;	# 删除查找到的文件,由用户确认是否删除
	find ./ -name "*.log" -ok rm {} ;	# {}为变量,是前面查找到的文件名

-exec rm {} ;	# 删除查找到的文件,不需要确认
	find ./ -name "*.log" -exec rm {} ;
	find ./ -name "*.log" -exec cp {} /data/ ;

0 人点赞