find
- find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为要查找的目录名
- 如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示
语法
Usage: find [-H][-L][-P][-Olever][-D help|tree|search|stat|rates|opt|exec][path...][expression]
find 处理符号链接 要查找的路径 参数 限定条件 执行动作
find -H -L -P PATH options tests actions
find 查找目录和文件 语法
find 路径 -命令参数 [输出形式]
参数
路径:告诉find在哪儿去找你要的东西
- pathname: 要查找的路径
- options选项
- -maxdepth:<目录层级> 设置最大目录层级
- -mindepth: <目录层级> 设置最小目录层级
- tests模块
- -atime:按照文件访问 acess 的时间查找,单位是天
- -ctime:按照文件的改变 change 状态来查找文件,单位是天
- -mtimd:按照文件修改 modify 时间查找文件【最常用】
- -name:按照文件名字查找,支持 *?[]通配符
- -group:按照文件的权限查找
- -perm:按照文件的权限查找
- -size n[cwbkMG]:按照文件的大小为n个由后缀决定的数据块
- b:代表512位元组的区块(如果用户没有指定后缀,则默认为b)
- c:表示字节数
- k:表示 kilo bytes(1024字节)
- w:字(2字节)
- M:兆字节(1048576字节)
- G:千兆字节(1073741824字节)
- -type:查找某一类型的文件
- b:块设备文件
- d:目录【常用】
- c:字符设备文件
- p:管道文件
- I:符号链接文件
- f:普通文件【常用】
- s:socket文件
- -user:按照文件属主来查找文件
- -path:配合 -prune 参数排除指定目录
- Actions模块
- -prune:使find命令不在指定的目录寻找(排除某个目录)
- -delete:删除找出的文件
- -exec 或 -OK:对匹配的文件执行相应shell命令
- -print:将匹配的结果标准输出
- OPERATIONS
- !:取反
- -a -o:取交集、并集,作用类似&&和\
案例
1、根据名字找文件
find /opt -name "*.txt"
2、设置查找的深度
find /opt -maxdepth 2 -name "*.txt"
3、设置查找文件的类型
find /test_file/ -type f
4、找到文件并删除
find /test_file/ -type f -delete
5、找到两天内被访问的文件
新建了几个文件用于演示效果
6、恰好在7天内被访问过得文件
find / -maxdepth 3 -type f -atime 7
7、感叹号取反
find . -maxdepth 2 ! -type d