Linux的文件查找find
时间:2021-08-08
本文章向大家介绍Linux的文件查找find,主要包括Linux的文件查找find使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Linux的文件查找find
find的作用
它可以根据不同的条件来进行查找文件,例如权限,拥有者,修改日期/时间,文件大小等
语法:
命令 | 路径 | 选项 | 表达式 | 动作 |
---|---|---|---|---|
find | path | [options....] | [expression] | [action] |
根据文件名查找
-name
查找tmp目录下以wk开头的所有文件:
root @localhost[13:45:38]:~
$ find /tmp -name 'wk*'
/tmp/wk1
/tmp/wk2
/tmp/wk3
/tmp/wk4
/tmp/wk5
-i 不区分大小写 一般组合可以是 -iname
根据文件类型查找
-type
查找etc目录下的所有文件
root@localhost[13:50:49]:~
$ find /etc -type f
多选项组合查找
-a: and 和
查找etc目录下名字同时含有conf 和 sudo的所有文件
root@localhost[13:58:27]:~
$ find /etc -name '*conf*' -a -name 'sudo*'
/etc/sudo-ldap.conf
/etc/sudo.conf
-o: or 或
查找etc目录下名字含有conf 或者sudo 的所有文件
root@localhost[14:02:03]:~
$ find /etc -name '*conf' -o -name 'sudo*'
!: 取反 非
查找etc目录下除了名字含有conf 和sudo 的其他所有文件
方法一:root@localhost[14:05:34]:~
$ find /etc ! \( -name '*conf' -o -name 'sudo*' \)
方法二:root@localhost[14:07:11]:~
$ find /etc ! -name '*conf' -a ! -name 'sudo*'
根据文件大小查找
-size
+5M : 查找大于5M的
-5M : 查找小于5M的
5M : 查找等于5M的
注意:一个block是4k,如果查找11k的 显示出来的是12k,因为11k是3个block,所以是12k
查找etc目录下大于2M的文件 并且显示他们的大小
root@localhost[14:16:45]:~
$ find /etc -size +2M |xargs du -sh
7.6M /etc/udev/hwdb.bin
3.8M /etc/selinux/targeted/active/policy.kern
3.8M /etc/selinux/targeted/policy/policy.31
du -sh :看文件大小的
根据时间查找
-mtime:修改时间(一般是修改里面内容的时间或者是创建的时间)m:modify
-atime;访问时间 a:access
-ctime:修改时间(修改属性的时间)c: change (用的比较多得是-mtime)
+7 : 查找7天之前的 不包含今天
root@localhost[00:01:37]:~
$ find ./ -mtime +7
-7 :查找最近7天的 包含今天
root@localhost[00:01:37]:~
$ find ./ -mtime -7
7 ;查找不包含今天 往前数第7天
root@localhost[00:01:37]:~
$ find ./ -mtime 7
先创建这个月30天的文件 root@localhost[14:51:44]:~
$ for i in `seq -w 30`;do date -s 202106$i && touch file-$i;done 这是一个for循环
删除近7天之前的所有file文件:
find ./ -type f -name 'file*' ! -mtime -7 -delete
或者
root@localhost[00:14:46]:~
$ find ./ -type f -name 'file*' ! \( -mtime -7 \)|xargs rm -f
根据用户来查找
-user
-group
-nouser
-nogroup
查找用户是wk1 组也是wk1的文件
root@localhost[00:28:39]:~
$ find /-user wk1 -group wk1
按照深度查找
-maxdepth
查找etc目录下的一级目录
方法一:
root@localhost[00:31:59]:~
$ find /etc/ -type d -maxdepth 1
方法二:
root@localhost[00:38:16]:~
$ ll /etc|grep '^d'
方法三:
root@localhost[00:57:40]:~
$ ls -F /etc|grep '/$'
方法四:
root@localhost[00:59:47]:~
$ tree -L 1 -d /etc
按权限查找
-perm
精确查找
root@localhost[01:01:42]:~
$ find ./ -perm 666
模糊匹配包含-后面的对应的权限
root@localhost[01:04:47]:~
$ find ./ -perm -223 (-223可以把它拆分成-w--w--wx)
find的动作(了解,很少用)
动作 | 作用 |
---|---|
打印(默认) | |
-ls | 列出找到的文件的详细信息 (不常用) |
-delete | 删除找到的文件 |
-ok (后面接;同时需要转义) | 后面根shell命令,第一次敲会提示是否执行 |
-exec | 后面跟shell命令 |
xargs结合find使用
root@localhost[00:14:46]:~
$ find ./ -type f -name 'file*' ! \( -mtime -7 \)|xargs rm -f
原文地址:https://www.cnblogs.com/wkyydsnb/p/15114499.html
- NodeJS 应用仓库钓鱼
- Codeforces 626D Jerry's Protest(暴力枚举+概率)
- CodeM美团点评编程大赛初赛B轮 黑白树【DFS深搜+暴力】
- Uva 10339 - Watching Watches【数论,暴力】
- Codeforces 626E Simple Skewness(暴力枚举+二分)
- 如何启用Windows 10客户端Hyper-V
- 51Nod 1632 B君的连通(递归,快速幂)
- 51Nod 1046 A^B Mod C(日常复习快速幂)
- EntityFramework 外键值映射
- Codeforces 626C Block Towers(二分)
- 51Nod 1004 n^n的末位数字(日常复习快速幂,莫名的有毒,卡mod值)
- kmp模版
- 触发器在渗透中的利用
- Codeforces 626B Cards(模拟+规律)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android Parcelable接口使用方法详解
- 假期结束了,撸一篇技术和大伙分享下吧!
- Android AIDL实现跨进程通信的示例代码
- Android中SharedPreferences简单使用实例
- 功能强大的Android滚动控件RecyclerView
- Android使用 Retrofit 2.X 上传多文件和多表单示例
- Android状态栏白底黑字的示例代码
- Android使用ViewPager实现顶部tabbar切换界面
- Android 中ScrollView与ListView冲突问题的解决办法
- Android数据库操作工具类分享
- Android使用RadioGroup实现底部导航栏
- Android 中Fragment与Activity通讯的详解
- Android常用控件ImageSwitcher使用方法详解
- Android实现阅读进度记忆功能
- Android 控制ScrollView滚动的实例详解