1、前言
从各个维度(类型、时间、权限、大小……)查找文件
2、用法
find 路径 选项 动作
3、选项
选项 |
说明 |
时间①内容修改时间(modification time,mtime)文件内容变更时,会更新该时间 ②状态修改时间(status time,ctime)文件状态变更(权限、属性……)时,会更新该时间 ③访问时间(access time,atime)每当读取(cat)时,就会更新该时间 |
|
-atime n、-n、+n | 访问时间 |
-ctime n、-n、+n | 状态修改时间 |
-mtime n -mtime -n -mtime +n |
内容变更 n:n天之前的一天内 +n:n天之前 -n:n天前到现在 |
-newer file |
比file新 |
用户、组名 |
|
-uid n | UID |
-gid n | GID |
-user name | 用户名 |
-group name | 组名 |
-nouser | 不属于任何人 |
-nogroup | 不属于任何组 |
权限 |
|
-name filename | 文件名(可正则) |
-size [+-]SIZE | 比SIZE大(+)或小(-),比50KB大--size +50K |
-type TYPE | 文件类型:f b c d l s p |
-perm mode | 权限刚好等于mode,mode为4位的权限数字 |
-perm -mode | 权限涵盖mode |
-perm /mode | 包含任一mode的权限 |
例子
日期
#将24 小时内有更动过内容 (mtime) 的文件列出 find / -mtime 0 #0 代表目前的时间 #三天前的 24 小时内 find / -mtime 3 文件日期比 /etc/passwd 新 find /etc -newer /etc/passwd
用户/组
#/home 下属于 dmtsai 的文件 find /home -user dmtsai #搜寻系统中不属于任何人的文件 [root@study ~]# find / -nouser
权限
#档名为 passwd find / -name passwd #包含了 passwd 关键词的文件 find / -name "*passwd*" 文件类型为 Socket find /run -type s #含有 SGID 或 SUID 或 SBIT 的属性 find / -perm /7000 #7000 就是 ---s--s--t ,那么只要含有 s 或 t 的就列出 #-7000 表示要同时含有 ---s--s--t 的所有三个权限。 #只需要任意一个,就是 /7000
4、动作
- -exec 指令:使用别的指令处理搜寻到的结果
- -print:默认,将结果打印
例子
#将上个范例找到的文件使用 ls -l 列出来 find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} \; #-exec 后面的 ls -l 就是额外的指令,指令不支持命令别名,所以仅能使用 ls -l 不可以使用 ll
5、多条件查找
find 路径 选项1 -a或-o 选项2 动作
#选项1 -a或-o 选项2 #-a表示and -o表示or find /home -name '1*' -a -type f
标签:name,passwd,Linux,命令,mode,mtime,权限,find From: https://www.cnblogs.com/ShineLeBlog/p/17621195.html