返回顶部

find 基本操作

find 查找文件基本操作

1.根据时间戳查找删除文件

  • 访问时间戳(atime):最后一次读取文件的时间。
  • 修改时间戳 (mtime):文件内容最后一次被修改的时间。
  • 更改时间戳 (ctime):上次更改文件元数据的时间(如,所有权、位置、文件类型和权限设置)
  • + 表示“大于”,- 表示“小于”
#查找超过一年的文件
find
. -type f -atime +365 -exec rm -rf {} \;

#查找8天前的文件
find . -type f -mtime 8

#搜素5~10天前的文件
find . -type f -ctime +5 -ctime -10

#查找今天的修改的文件
find  / -ctime -1

2.根据文件名查找

find  / -name test.txt

3.根据正则查找

find /  -type f -name "*.pdf"

4.根据文件类型查找 -type

七种文件类型: -,d,b,c,l,p,s

find . -type l -name "favicon*"

 

5.查找大小 -size

find  -size [+|-]#UNIT

常用单位:k, M, G,c(byte),注意大小写敏感

#UNIT: (#-1, #] 如:6k 表示(5k,6k]

-#UNIT:[0,#-1] 如:-6k 表示[0,5k]

+#UNIT:(#,∞) 如:+6k 表示(6k,∞)

#查找文件大于10M,小于1G的文件
find  /  -type f -size +10M -size -1G

find /  -size +10M

6. 根据权限查找  -perm

find  /  -type f -perm 777

7.按所有者权限查找文件 -user

find / -type f -user wei

8. 查找后执行命令 -exec

注意:占位符 {} 非常重要,尤其是在您想删除文件时。因为,如果您不使用它,该命令将对所有文件执行(而不是您刚刚通过 find 命令找到的文件)。或者配合xargs使用

#查找一年的文件删除
find  / -type f -atime +365 -exec rm -rf {} \;

find  / -type f -name logfile  -ok rm -rf {} \;

find / -type f -name log |xargs rm -f

对比使用区别

-exec 选项后面的命令必须以分号(;)结束,转义字符用于去除单个字符的特殊含义。在 Linux 中,反斜杠 \ 用作转义字符,所以将它用于分号字符

find  / -type f -atime +10 -exec ls {} \;
find / -type f -atime +10 -exec ls \;

9.其他功能

-print: 默认的处理动作,显示至屏幕
-ls: 类似于对查找到的文件执行"ls -dils"命令格式输出
-fls file: 查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
-delete: 删除查找到的文件,慎用!
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会
交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令
{}: 用于引用查找到的文件名称自身

#备份配置文件,添加.orig这个扩展名
find  -name  ".conf"  -exec  cp {} {}.orig \;

#提示删除存在时间超过3天以上的joe的临时文件
find /tmp -ctime +3 -user joe -ok rm {} \;

#在主目录中寻找可被其它用户写入的文件
find ~ -perm -002  -exec chmod o-w {} \;

#查找/data下的权限为644,后缀为sh的普通文件,增加执行权限
find /data –type f -perm 644  -name "*.sh" –exec chmod 755 {} \;

#查找有特殊权限的文件,并排序
find /bin/ -perm /7000 | xargs ls -Sl

 

posted @ 2020-06-05 12:22  九尾cat  阅读(1963)  评论(0编辑  收藏  举报