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
find的用法(完整)的更多相关文章
- jQuery包裹节点用法完整示例
本文实例讲述了jQuery包裹节点用法.分享给大家供大家参考,具体如下: <html> <head> <meta http-equiv="Content-Typ ...
- C#中this的用法,你用过几种?
C#中this的用法,你用过几种?[含源码示例] 摘自:http://www.2cto.com/kf/201110/107591.html C#中的this用法,相信大家应该有用过,但你用过几种?以下 ...
- CheckListBox的实现方式分析
实际项目中常常要实现有CheckBox列表框.但是WPF没有自带这样的一个控件,下面就用Style来实现这样的功能.而对于CheckBox列表框,又常常会有一个Select All的CheckBox来 ...
- JSON WEB TOKEN - 告别session和cookie - java demo
JWT简介 JWT认证流程: 用户登录成功,生成token,返回一个对象(包含token,用户名) 每次请求都带上这个对象(通过js存储在电脑) jwt过滤器会校验token解密之后的name是否和用 ...
- keydown,keypress,keyup三者之间的区别
最近看了Javascript高级教程中对过滤输入的介绍,想实现比如电话号码中不能包好非数值的字符,而相应文本中插入字符的操作是keypress事件,所以就想通过阻止这个事件的默认事件行为来阻止这个事件 ...
- Apriori算法进行关联分析
设全集U = {a, b, c, d, e},其元素a,b, c, d, e称为项. 数据集: D = [ {a, b}, {b, c, d}, {d, e}, {b, c, e}, {a,b, c, ...
- iOS 第三方库、插件、知名博客总结
iOS 第三方库.插件.知名博客总结 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图 ...
- KeyPress 和KeyDown 、KeyPress之间的区别
虽然从字面理解, KeyDown是按下一个键的意思, 但实际上二者的根本区别是, 系统由KeyDown返回键盘的代码, 然后由TranslateMessage函数翻译成成字符, 由KeyPress返回 ...
- 2018.11.20 Struts2中对结果处理方式分析&struts2内置的方式底层源码剖析
介绍一下struts2内置帮我们封装好的处理结果方式也就是底层源码分析 这是我们的jar包里面找的位置目录 打开往下拉看到result-type节点 name那一列就是我们的type类型取值 上一篇博 ...
- 借鉴redux,实现一个react状态管理方案
react状态管理方案有很多,其中最简单的最常用的是redux. redux实现 redux做状态管理,是利用reducer和action实现的state的更新. 如果想要用redux,需要几个步骤 ...
随机推荐
- javascript 高级程序设计 七
引言:好几天没有写随笔了,项目有点紧,恰好今天项目遇到了比较大阻塞,就只好来写一篇随笔来压压惊. 1.Date类型 创建一个新的Date:(除了new Date()外) var someDate = ...
- Codeforces 787D. Legacy 线段树建模+最短路
D. Legacy time limit per test:2 seconds memory limit per test:256 megabytes input:standard input out ...
- ASCII码表以及不同进制间的O(1)转换
ASCII码表以及不同进制间的O(1)转换 一.ASCII码表 ASCII全称为American Standard Code for Information Interchange, ...
- 网卡驱动如何设置组播MAC地址
参考资料: https://blog.csdn.net/abccheng/article/details/50465268 将网卡加入到组播组中.
- ubuntu 启动时提示 Failed to load session ubuntu
启动时候提示 Failed to load session ubuntu 通过 CTRL + ALT + [F1~F6] 进入终端界面登陆进系统, 进去之后执行 sudo apt-get instal ...
- Eclipse中配置Tomcat服务器并创建标准Web目录
Eclipse创建 Java Web 项目,并生成标准的目录结构 file --> New --> Dynamic Web project 填写 Project name (该名称项目的名 ...
- PHP递归函数
递归函数(Recursive Function)是指直接或间接调用函数本身的函数 在每次调用自己时,必须是(在某种意义上)更接近 于解 必须有一个终止处理或计算的准则 function recursi ...
- 34、iOS App图标和启动画面尺寸
注意:iOS所有图标的圆角效果由系统生成,给到的图标本身不能是圆角的. 1. 桌面图标 (app icon) for iPhone6 plus(@3x) : 180 x 180 for iPhone ...
- opencv知识积累
1.OpenCV 3计算机视觉:Python语言实现 https://github.com/techfort/pycv 2.OpenCV3编程入门 opencv 均值模糊:一般用来处理图像的随机噪声 ...
- jq页面加载分割截图
<script> $(document).ready(function() { if (!Array.prototype.forEach) { Array.prototype.forEac ...