一、根据文件或者正则表达式进行匹配

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的用法(完整)的更多相关文章

  1. jQuery包裹节点用法完整示例

    本文实例讲述了jQuery包裹节点用法.分享给大家供大家参考,具体如下: <html> <head> <meta http-equiv="Content-Typ ...

  2. C#中this的用法,你用过几种?

    C#中this的用法,你用过几种?[含源码示例] 摘自:http://www.2cto.com/kf/201110/107591.html C#中的this用法,相信大家应该有用过,但你用过几种?以下 ...

  3. CheckListBox的实现方式分析

    实际项目中常常要实现有CheckBox列表框.但是WPF没有自带这样的一个控件,下面就用Style来实现这样的功能.而对于CheckBox列表框,又常常会有一个Select All的CheckBox来 ...

  4. JSON WEB TOKEN - 告别session和cookie - java demo

    JWT简介 JWT认证流程: 用户登录成功,生成token,返回一个对象(包含token,用户名) 每次请求都带上这个对象(通过js存储在电脑) jwt过滤器会校验token解密之后的name是否和用 ...

  5. keydown,keypress,keyup三者之间的区别

    最近看了Javascript高级教程中对过滤输入的介绍,想实现比如电话号码中不能包好非数值的字符,而相应文本中插入字符的操作是keypress事件,所以就想通过阻止这个事件的默认事件行为来阻止这个事件 ...

  6. 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, ...

  7. iOS 第三方库、插件、知名博客总结

    iOS 第三方库.插件.知名博客总结 用到的组件 1.通过CocoaPods安装 项目名称 项目信息 AFNetworking 网络请求组件 FMDB 本地数据库组件 SDWebImage 多个缩略图 ...

  8. KeyPress 和KeyDown 、KeyPress之间的区别

    虽然从字面理解, KeyDown是按下一个键的意思, 但实际上二者的根本区别是, 系统由KeyDown返回键盘的代码, 然后由TranslateMessage函数翻译成成字符, 由KeyPress返回 ...

  9. 2018.11.20 Struts2中对结果处理方式分析&struts2内置的方式底层源码剖析

    介绍一下struts2内置帮我们封装好的处理结果方式也就是底层源码分析 这是我们的jar包里面找的位置目录 打开往下拉看到result-type节点 name那一列就是我们的type类型取值 上一篇博 ...

  10. 借鉴redux,实现一个react状态管理方案

    react状态管理方案有很多,其中最简单的最常用的是redux. redux实现 redux做状态管理,是利用reducer和action实现的state的更新. 如果想要用redux,需要几个步骤 ...

随机推荐

  1. Windows 修改的hosts记录没有效果

    windows修改的hosts记录没有效果,新添加的也没有效果. 检查DNS设置相关的均正常, <Dns client为此计算机解析和缓冲域名系统 (DNS) 名称.> 为此计算机注册并更 ...

  2. python——ADSL拨号程序

    这是一个简单的测试实例 说说应用场景吧,都是因为电信搞的奇葩网络结构. 宿舍有若干层,每一层楼的网络拓扑如上图所示,本来是没有问题的,一个楼层接近四十个用户,都拥有一个电信给的宽带拨号账号.但是问题是 ...

  3. [Robot Framework] 学习资料

    https://www.cnblogs.com/pachongshangdexuebi/category/981644.html Robot Framework学习笔记(一)------环境搭建 Ro ...

  4. DNA计算机及DNA存储

    傅里叶变换到量子水平,可编程元素到原子分子核能,都可以极大的改变有机体(高级有机体都是有寿命的,例如人类),如果可以出现机械体,核能提供能量:并结合类似高级生物大脑的有机体大脑,不断学习进化,甚至优化 ...

  5. NOIP训练测试3(2017081601)

    上一波题还是比较水的吧?[?????] 也许吧! 但时间还是比较紧的,所以我从2.5个小时延长至3个小时了. 不管了,做题不能停,今天继续测试. 水不水自己看,我什么也不说(zhe shi zui h ...

  6. AJAX-URL-HTTP协议-缓存-DOM操作-HTML元素事件

    1.URL 1.URL的作用 用于来表示任意一个资源的位置(互联网上). 协议+主机名+文件目录结构+文件名称 2.详解 格式: <scheme>://<user>:<p ...

  7. 鲍姆-韦尔奇算法求解HMM参数

    1. HMM模型参数求解概述 HMM模型参数求解根据已知的条件可以分为两种情况. 第一种情况较为简单,就是我们已知DD个长度为TT的观测序列和对应的隐藏状态序列,即{(O1,I1),(O2,I2),. ...

  8. IBM X3650 M3/M4的服务器装系统

    IBM X3650 M3/M4的服务器一般都有两块以上的硬盘.所以如果没有做RAID,那首先应该做好raid 磁盘阵列.本文装系统的前提是RAID已经做好. 一般安装系统的方式为先在IBM官网下载对应 ...

  9. 执行sh脚本文件下载Github上的代码(雷霄骅的ffmpeg示例代码)

       今天想重新学习下ffmpeg,于是又来到了雷晓骅的博客,先下载了他的所有代码,这里记录一下在Windows上使用sh脚本下载GitHub上代码的过程. CygWin(最后并没有用到)    可以 ...

  10. 连接oracle数据库报错:TNS-12516 TNS:listener could not find available handler with matching protocol stack解决方法

    导致此问题的可能原因为:数据库的当前会话说不满足造成的. 解决方法如下: (1)连接数据库: [localhost@oracle]$:sqlplus  /nolog sql>conn  / as ...