Linux基础:文件查找find
写在前面
在linux的日常管理中,find的使用频率很高,熟练掌握对提高工作效率很有帮助。
find的语法比较简单,常用参数的就那么几个,比如-name、-type、-ctime等。初学的同学直接看第二部分的例子,如需进一步了解参数说明,可以参考find的帮助文档。
find语法如下:
find(选项)(参数)
常用例子
根据文件名查找
列出当前目录以及子目录下的所有文件
find .
找到当前目录下名字为11.png的文件
find . -name "11.png"
找到当前目录下所有的jpg文件
find . -name "*.jpg"
找到当前目录下的jpg文件和png文件
find . -name "*.jpg" -o -name "*.png"
找出当前目录下不是以png结尾的文件
find . ! -name "*.png"
根据正则表达式查找
备注:正则表示式比原先想的要复杂,支持好几种类型。可以参考这里
找到当前目录下,文件名都是数字的png文件。
find . -regex "\./*[0-9]+\.png"
根据路径查找
找出当前目录下,路径中包含wysiwyg的文件/路径。
find . -path "*wysiwyg*"
根据文件类型查找
通过-type进行文件类型的过滤。
- f 普通文件
- l 符号连接
- d 目录
- c 字符设备
- b 块设备
- s 套接字
- p Fifo
举例,查找当前目录下,路径中包含wysiwyg的文件
find . -type f -path "*wysiwyg*"
限制搜索深度
找出当前目录下所有的png,不包括子目录。
find . -maxdepth 1 -name "*.png"
相对应的,也是mindepth选项。
find . -mindepth 2 -maxdepth 2 -name "*.png"
根据文件大小
通过-size来过滤文件尺寸。支持的文件大小单元如下
- b —— 块(512字节)
- c —— 字节
- w —— 字(2字节)
- k —— 千字节
- M —— 兆字节
- G —— 吉字节
举例来说,找出当前目录下文件大小超过100M的文件
find . -type f -size +100M
根据访问/修改/变化时间
支持下面的时间类型。
- 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
- 修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
- 变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。
举例,找出1天内被修改过的文件
find . -type f -mtime -1
找出最近1周内被访问过的文件
find . -type f -atime -7
将日志目录里超过一个礼拜的日志文件,移动到/tmp/old_logs里。
find . -type f -mtime +7 -name "*.log" -exec mv {} /tmp/old_logs \;
注意:{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。
另外,\;用来表示命令结束,如果没有加,则会有如下提示
find: -exec: no terminating ";" or "+"
根据权限
通过-perm来实现。举例,找出当前目录下权限为777的文件
find . -type f -perm 777
找出当前目录下权限不是644的php文件
find . -type f -name "*.php" ! -perm 644
根据文件拥有者
找出文件拥有者为root的文件
find . -type f -user root
找出文件所在群组为root的文件
find . -type f -group root
找到文件后执行命令
通过-ok、和-exec来实现。区别在于,-ok在执行命令前,会进行二次确认,-exec不会。
看下实际例子。删除当前目录下所有的js文件。用-ok的效果如下,删除前有二次确认
➜ find find . -type f -name "*.js" -ok rm {} \;
"rm ./1.js"?
试下-exec。直接就删除了
find . -type f -name "*.js" -exec rm {} \;
找出空文件
例子如下
touch {1..9}.txt
echo "hello" > 1.txt
find . -empty
Linux基础:文件查找find的更多相关文章
- Linux基础文件查找
一.文件查找 (一).命令文件 [root@linux ~]# chich ls //从PATH环境变量 [root@linux ~]# chereis vim [root@linux ~]# ech ...
- linux 批量文件查找并替换
linux 批量文件查找并替换 sed -i "s/oldstring/newstring/g" `grep oldstring -rl path` 如: sed -i " ...
- Linux操作系统的文件查找工具locate和find命令常用参数介绍
Linux操作系统的文件查找工具locate和find命令常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.非实时查找(数据库查找)locate工具 locate命 ...
- Linux 执行文件查找命令 which 详解
某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查 ...
- [Linux] find文件查找和grep文件内容查找
在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区别的: (1)find命令:根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时 ...
- Linux下文件查找命令find笔记
在Linux命令下如果需要快速自己系统所需要处理的文件,可以通过find命令快速进行检索. 如果想在某个路径下查找相应的文件可以执行如下命令: find path -name filename # p ...
- linux之文件查找find grep详解,以及压缩归档
.find linux里的实时查找工具,通过制定路径完成文件查找. find[options]...[查找路径] [查找条件] [处理动作] 查找路径:查找的位置,默认是当前文件夹. 查找条件:指定查 ...
- linux通过文件查找依赖关系
通过文件查找安装包安装缺少libstdc++6这个文件在ls /usr/lib/libstd*下有两个文件/usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.6 ...
- linux下文件查找工具--find
常用的文件查找命令有:which,locate,find 1.which命令 查找二进制数或二进制命令,由PATH给出 2.loacte 特点: 1.非实时,每天在系统上生成数据库,通过数据库查询 2 ...
- linux中文件查找、whereis、which、输出命令
1.文件查找(find):find是最常⻅和最强⼤的查找命令 格式:find / -name 文件名,比如:find / -name mysql. (1).模糊查找:*是代表所有的,?是代表⼀个字 ...
随机推荐
- ML技术 - 特征选择
1. 决策树中的特征选择 分类决策树是一种描述对实例进行分类的树型结构,决策树学习本质上就是从训练数据集中归纳出一组分类规则,而二叉决策树类似于if-else规则.决策树的构建也是非常的简单,首先依据 ...
- 从java1到java9每个版本都有什么新特性?
每次出新版本,大家大概都会这么问,"Java X会有什么特性呢?" .在下面的内容里,我总结了至今为止的Java主要发行版中各自引入的新特性,这样做的目的是为了突出各个新特性是在哪 ...
- JSON Web Tokens(JWT)
现在API越来越流行,如何安全保护这些API? JSON Web Tokens(JWT)能提供基于JSON格式的安全认证.它有以下特点: JWT是跨不同语言的,JWT可以在 .NET, Python, ...
- JAVASE 循环 之 计算各位上数字的和
问题:输入一个整数,计算它各位上数字的和 Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int sum = 0; while(a ...
- vue-cli 如何配置sass
第一步:安装对应的node模块 npm install node-sass --save-dev npm install sass-loader --save-dev 第二步:在webpack.bas ...
- 最大信息系数(MIC)——Detecting Novel Associations in Large Data Sets
本文介绍了一种发现两个随机变量之间依赖关系强度的度量MIC(最大信息系数,类似于相关系数的作用).MIC具有以下性质和优势: MIC度量具有普适性.其不仅可以发现变量间的线性函数关系,还能发现非线性函 ...
- python/numpy/tensorflow中,对矩阵行列操作,下标是怎么回事儿?
Python中的list/tuple,numpy中的ndarrray与tensorflow中的tensor. 用python中list/tuple理解,仅仅是从内存角度理解一个序列数据,而非数学中标量 ...
- ABAP 7.52 中的Open SQL新特性
S/4 HANA 1709 已经在几个月前发布,随之而来的是ABAP 7.52. 本文翻译了更新文档中有关Open SQL的部分 本文链接:http://www.cnblogs.com/hhelibe ...
- 自学python笔记(一)
一 简介:Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.其他的就不说了..... python是 ...
- 第六届蓝桥杯软件类省赛题解C++/Java
第六届蓝桥杯软件类省赛题解C++/Java 1[C++].统计不含4的数字统计10000至99999中,不包含4的数值个数.答:暴力循环范围内所有数字判断一下就是了,答案是52488 1[Java]. ...