语法:find [指定查找目录] [查找规则] [查找完后执行的action]
当前测试文件:
./a.txt
./A.txt
./backup/a.txt
./backup/A.txt
./backup/subbackup/a.txt
./backup/subbackup/A.txt
find a.txt 省略路径直接查找文件(只在当前目录下查找不会进入其子目录查找)
a.txt
find a.txt -exec ls -l {} \; 显示查找结果的详细信息
find a.txt -ok ls -l {} \; 效果同上但在显示详细信息前需确认(y or n)
find backup 省略路径直接查找目录(显示找到的目录及目录下的所有文件和子目录(子目录下有文件也会显示))
backup
backup/a.txt
backup/A.txt
backup/subbackup
backup/subbackup/a.txt
backup/subbackup/A.txt
find -name a.txt 在当前目录及其子目录下根据名字进行查找
./a.txt
./backup/a.txt
./backup/subbackup/a.txt
find -name subbackup 只显示所查找目录所在的路径
./backup/subbackup
find -iname a.txt 忽略大小写
./a.txt
./backup/a.txt
./backup/subbackup/a.txt
./backup/subbackup/A.txt
./backup/A.txt
./A.txt
find -maxdepth 2 -name a.txt 限定搜索指定目录的深度(2:当前目录及下一级子目录(不包括第三级子目录))
./a.txt
./backup/a.txt
find -mindepth 2 -name a.txt (2:从其子目录开始查找)
./backup/a.txt
./backup/subbackup/a.txt
find -mindepth 2 -maxdepth 2 -name a.txt 可限定一个区间,当前测试只能在第二层查找
./backup/a.txt
find -name "*up" *:表示通配任意的字符(任意个数的任何字符)
./backup
./backup/subbackup
find -name "sub?ackup" ?:?表示通配任意的单个字符
./backup/subbackup
find -name "[abcd]ackup" []:表示通配括号里面的任意一个字符
./backup
find [path] -user 具体的用户名
find [path] -group 具体的组名
find [path] -uid 具体的用户id
find [path] -gid 具体的组id
find [path] -size 10M 查找指定目录下等于10M的文件
find [path] -size +10M 查找指定目录下大于10M的文件
find [path] -size -10M 查找指定目录下小于10M的文件
find [path] -perm 755 查找指定目录下权限是755的文件(完全匹配)
find [path] -perm +755
将755转换成二进制(111 101 101),在1位上有一个与之匹配(0不匹配没关系)的则符合(如111 100 001)
find [path] -perm -755
将755转换成二进制(111 101 101),在所有1位上都与之匹配(0不匹配没关系)的则符合(如111 111 111 或 111 101 101)
find -name "a.txt" -a -user username -a:同时满足两个条件
find -name "a.txt" -o -user username -o:满足其中一个条件即可
find -not -name a.txt -not:相反匹配
find -empty 查找空文件(0字节文件)
find -type d -name "*back*" 查找目录名含有back的目录
./backup
./backup/subbackup
-type
f // 普通文件
d //目录文件
l //链接文件
b //块设备文件
c //字符设备文件
p //管道文件
s //socket文件
使用inode编号查找文件
touch "test.txt"
touch "test.txt " 此文件名多了个空格
用ll查看两者的文件名没有区别
用ls -il 查看其inode号
find -inum 34083474 -exec rm {} \; 根据inode号查找并删除
查找5个最大的文件
find . -type f -exec ls -s {} \; | sort -n -r | head -5
查找5个最小的文件
find . -type f -exec ls -s {} \; | sort -n | head -5
根据文件的相关时间信息来查找
stat filename 查看文件的时间等详细信息
除了可以通过stat来查看文件的mtime,ctime,atime等属性,也可以通过ls命令来查看,具体如下:
ls -lc filename 列出文件的 ctime (最后更改时间) change
ls -lu filename 列出文件的 atime(最后存取时间) access
ls -l filename 列出文件的 mtime (最后修改时间) modify
在windows下,一个文件有:创建时间、修改时间、访问时间。
而在Linux下,一个文件也有三种时间,分别是:访问时间(cat等命令查看内容)、修改时间(修改内容)、状态时间(手动更改文件的时间信息(touch -t)、权限等)
find -atime -2 2:2*24小时即2天,2天内有被访问的文件
find -amin -2 2:2分钟,2分钟内有被访问的文件
Linux中find命令的使用示例
最新推荐文章于 2022-06-17 09:49:09 发布