find的用法(完整)
一、根据文件或者正则表达式进行匹配
1.列出当前目录(/.code)及子目录下所有文件和文件夹
find .
2.在当前目录(/.code)下查找以.pdf结尾的文件名
find . -name "*.pdf"
或者 find . -iname "*.pdf"(忽略大小写)
3.查找当前目录(/code)及子目录下所有以 .txt和.pdf结尾的文件
find . -name "*.txt" -o -name "*.pdf"
4.匹配文件路径或者文件
find . -path "*.txt"
5.基于正则表达式匹配文件路径
find . -regex ".*\(\.txt\|\.pdf\)$"
或者 find . -regex ".*\(\.txt\|\.pdf\)$"(忽略大小写)
二、否定参数
1.找出当前目录(/code)下不是以.txt结尾的文件
find . ! -name "*.txt"
三、根据文件类型进行搜索
find . -type 类型参数
类型参数列表:
1. f 普通文件
2. l 符号链接
3. d 目录
4. c 字符设备
5. b 块设备
6. s 套接字
7. p Fifo
四、基于目录深度搜索
1.向下最大深度限制为1
find . -maxdepth 1 -type f
2.搜索出深度距离当前目录至少2个子目录的所有文件
find . -mindepth 2 -type f
五、根据文件时间戳进行搜索
UNIX/Linux文件系统每个文件都有三种时间戳
find . -type f 时间戳
~ 访问时间(-atime/天,-amin/分钟) :用户最近一次访问时间
~ 修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间
~ 变化时间(-ctime/天,-cmin/分钟) :文件数据元(例如权限等) 最后一次修改时间
1.搜索最近N天内被访问的所有文件
find . -type f -atime -N
2.搜索恰好在N天前被访问过的所有文件
find . -type f -atime N
3.搜索超过N天内被访问过的所有文件
find . -type f -atime +N
4.搜索访问时间超过N分钟的所有文件
find .type f - amin +N
5找出比file.txt修改时间更长的所有文件
find . -type f -newer file.txt
六、根据文件大小进行匹配
find . -type f -size 文件大小单元
文件大小单元
1. b——块(512字节)
2. c——字节
3. w——字(2字节)
4. k——千字节
5. M——兆字节
6.G——吉字节
搜索大于N KB的文件
find . -type f -size +Nk
搜索小于N KB的文件
find . -type f -size -Nk
搜索等于N KB的文件
find . -type f -szie Nk
(我在/code 中创建的都是新的空文件 所以大小都是0 k)
我试出了我/code下创建的/test目录的大小是8k
七.删除匹配文件
find . -type f -name "*.txt" -delete
八、根据文件权限/所有权进行匹配
1.当前目录下搜索出权限777的文件
find . -type f -perm 777
2.找出当前目录下不是644的php文件
find . -type f -name "*.php" ! -perm 644
3.找出当前目录用户root拥有的所有文件(用户任意都可以)
find . -type f -user root
(很明显可以看出/code目录下所有文件和目录 都是root root)
4.找出当前木兰路用户组root拥有的所有文件(用户组任意都可以)
find . -type f -group root
九、借助 -exec 选项与其他命令结合使用
1.找出当前目录下所有的root文件,并把所有权更改问ljn(一般用户)
find . -type f user root -exec chown ljn {} \;
{}用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名
2.找出当前目录下所有的 .pdf文件并删除
find . -name "*.txt" -ok rm {} \;
-ok和-exec行为一样,不过它会给出提示,时候执行相应操作
3.查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中
find . -type f -name "*.txt" -exec cat {} \;> all.txt
4.将N天前的.log文件移动到old目录中
find . -type f -mtime +N -name "*.log" -exec cp {} old \;
5.找出当前目录下所有的.txt文件并以File:"文件名的形式打印出来
find . -type f -name "*.txt" -exec printf "File:" %s\n" {} \;
6.因为单行命令中-exec参数中无法使用多个命令,以下方式可以实现在-exec后接受多条命令
-exec ./text.sh {} \;
十、搜索但跳出指定的目录
1.查找当前目录下所有.txt文件,但跳过子目录sk
find . -path "./sk" -prune -o -name "*.txt" -print
十一、要列出所有长度问零的文件
find . -empty
转载于:https://www.cnblogs.com/JN-PDD/p/6639302.html
find的用法(完整)相关推荐
- phppage类封装分页功能_PHP封装的page分页类定义与用法完整示例
本文实例讲述了PHP封装的page分页类定义与用法.分享给大家供大家参考,具体如下: 亲测有效,见下图=========> 1. 测试实例test.php header("Conten ...
- jQuery包裹节点用法完整示例
本文实例讲述了jQuery包裹节点用法.分享给大家供大家参考,具体如下: <html> <head> <meta http-equiv="Content-Typ ...
- 光学字符识别 Tesseract-OCR 的下载、安装和基本用法
OCR:即Optical Character Recognition,光学字符识别,是指检查纸或者图片上打印的字符,通过检测暗.亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程: T ...
- 键盘事件keypress 和 keydown、keyup 的用法与区别
KeyDown:用户摁下摁键时发生 KeyPress:用户摁下摁键,并且产生一个字符时发生 KeyUp: 用户释放某一个摁键时触发 定义和用法 完整的 keypress 过程分为两个部分:1. 按键被 ...
- Hive中with/with as 的用法
1.with as 是什么 with...as...需要定义一个sql片段,会将这个片段产生的结果集保存在内存中,后续的sql均可以访问这个结果集和,作用与视图或临时表类似. 2.用法 ① 完整格式 ...
- curl命令使用总结
curl命令:用来发送http请求 -d:用来发送post请求,默认为get请求 content-type为multipart/form-data时,后面的多个参数用'&'连接,例如:&quo ...
- kylinH5框架之项目组件理解
目录 组件介绍 组件声明结构 组件接口 script dependency template style 状态注入 接口声明 组件介绍 Component 扩充自 Vue 的组件, 提供了 Vue 组 ...
- mpaaS的kylin框架-项目结构(脚手架)
脚手架简介 项目初始化结构如下 project ├── mock │ ├── mock.config.js │ └── rpc │ └── test.js ├── package.json ├── w ...
- 批量ping指定端口,批量测试IP地址是否通
IP地址批量测试,ping的小记录 测试一个ip通不通,首选用ping命令,格式:ping [ip] 比如我测试 192.168.1.1 这个ip地址,如下: D:\>ping 192.168 ...
- iOS 项目源码大全 github 国内外大神
github排名https://github.com/trending,github搜索:https://github.com/search 主要工作说明: 重新整理了Xcode好用的插件,信息更详细 ...
最新文章
- 互联网黄金十年的黄昏——是人工智能的黎明还是裁员的长夜
- webbrowser 百度列表点击_百度信息流推广后台完整的实操流程!
- python运行程序-用Python执行程序的4种方式,编程必备
- Smart Link
- 1 张图秒懂 Nova 16 种操作 - 每天5分钟玩转 OpenStack(44)
- 只进ResultSet 不支持请求的操作
- 动静分离-静态资源缓存控制
- 国内高校简称撞车史:南大、西大、东大都在争 唯独北大没人抢
- 数值计算方法(二)——复化求积公式
- group by 查询分组后 各组的内部条数与组的条数
- spring aop中使用@Pointcut注解抽取可重用的切入点表达式
- python 计算循环次数,05.Python循环
- 阿里java规范_阿里Java规范
- AI独角兽商汤科技的内部服务容器化历程
- linux dd命令实用详解
- 兄dei,你的代码死循环了吗?
- R语言:使用openxlsx读取和写入数据
- Feem(局域网文件传输工具)v4.3.0官方版
- SQL数据库学习总结
- 新手小白,做二次剪辑的必备工具,帮你快人一步
热门文章
- 500元征集网站域名和网站名称
- java实现年会微信签到,签到后在大屏中展示,导出签到信息
- 正版软件 Directory Opus 12 Pro Windows 平台上的资源管理器,定是功能完全、可定制化程度高的那款。
- 疾病研究:DMD患者家庭理疗练习指南
- 【资损】资损防控的系统规范-收单类服务设计
- 2020 年百度之星·程序设计大赛 - 初赛一题解
- gradle版本与android的gradle插件版本兼容Unable to find method org.gradle.api.tasks.compile.CompileOptions.setB
- c语言lcm函数的头文件,LCM中C++的API介绍
- 使用Python调用有道翻译接口实现翻译任务
- SpringBoot-自动配置