Linux-find-命令使用技巧

基本使用

语法:

1
find [PATH] [option] [action]

与时间相关的查找

与时间相关的选项有:

  • -atime, “a” 指 “access”, 指文件是否被读取
  • -ctime, “c” 指 “change”, 指文件状态的改变
  • -mtime, “m” 指 “modified”, 指文件内容的修改

-mtime 为例子:

  • -mtime n, 列出 n 天之前一天内被更改过内容的文件
  • -mtime +n, 列出 n 天之前(不含n天本身)
  • -mtime -n, 列出 n 天之内
1
find / -mtime 0

这里 0 表示当天.

理解:

与使用者和用户组相关的查找

  • -uid n
  • -gid n
  • -user name
  • -group name
  • -nouser
  • -nogroup

如查找 /home 之下属于 dmtsai 的文件:

1
find /home -user dmtsai

与文件属性相关的查找

  • -name filename, 可以用 pattern
  • -size [+-]SIZE, +50KB 表示比 50KB 大的文件
  • -type TYPE
  • -perm mode, 具有指定权限 (注意用 777 这种写法)
  • -perm -mode, 包含指定权限
  • -perm /mode, 包含其一权限

如查找具有其中一个特殊权限的文件:

1
find / -perm  /7000

特殊权限位中:

  • 4 为 SUID
  • 2 为 SGID
  • 1 为 SBIT

处理文件的 action

  • -exec command, 用命令处理搜索到的结果
  • -print, 默认动作, 打印到屏幕

如:

1
find /usr/bin/ /usr/sbin -perm 7000 -exec ls -l {} \;
  • {} 代表 “find 找到的结果”
  • -exec .... \;, -exec 表示开始, \; 表示结束

示例

查找指定目录下文件名中包含 lib 的文件

1
find /path/to/search -name "*lib*" -type f

查找空的链接文件

1
find /path/to/ -type l -empty

Linux-find-命令使用技巧
http://example.com/2024/03/08/Linux-find-命令使用技巧/
作者
Jie
发布于
2024年3月8日
许可协议