find - search for files in a directory hierarchy 查找文件

【语法】: find 【选项】 【参数】

【功能介绍】

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

【选项说明】

 -maxdepth levels  设置最大目录层级;
Descend at most levels (a non-negative integer) levels of directories below the com-
mand line arguments. -maxdepth
4 means only apply the tests and actions to the command line arguments. -mindepth levels 设置最小目录层级;
Do not apply any tests or actions at levels less than levels (a non-negative integer).
-mindepth means process all files except the command line arguments. -name pattern 指定字符串作为寻找文件或目录的范本样式; -size 指定文件大小 -type c 指定文件类型 b block (buffered) special 字符设备
c character (unbuffered) special 字符串
d directory 目录
p named pipe (FIFO)
f regular file 普通文件
l symbolic link; this is never true if the -L option or the -follow option is in 符号连接
effect, unless the symbolic link is broken. If you want to search for symbolic
links when -L is in effect, use -xtype. -exec <执行指令>:假设find指令的回传值为True,就执行该指令;
--mtime 查找指定天数
!取反

【参数说明】

查找文件的起始目录

【经验技巧】

  1. find指令支持逻辑运算符与(and)、或(or)和非(not)组成的复合查询条件。现象“-a”为默认选项。逻辑与表示当所有给定的条件都满足时,符合查找条件;逻辑非表示查找与所给条件相反的文件。
  2. 通过find指令的“-exec” 选项可以通过外部Linux指令对找到的文件进行操作。如果找到的文件较多,有可能出现“参数太长”,或者“参数溢出”的错误。可以使用xargs指令每次制度取一部分查找到的文件,等处理完毕后再读取一部分查找的文件,一次类推,直到所有的文件都被处理完毕。
  3. 为了缩短find指令的执行时间,要尽量的缩小查找的其实目录。因为find指令使用递归方式遍历目录,所以其实目录范围较大,会导致find指令的运行过程过长。
  4. 不带任何选项和参数的find指令可以打印当前目录下的所有内容,包括所有子目录下的文件列表。

【实例】

实例1:删除当前目录下所有.txt文件

 [root@cobbler6 ~]# find . -type f -name "*.txt"
./oldboy.txt
./luoahong/.txt
./test/e.txt
./test/b.txt
./test/a.txt
./test/c.txt
./test/d.txt
[root@cobbler6 ~]# find . -type f -name "*.txt"|xargs rm -f
[root@cobbler6 ~]# ll
total
drwxr-xr-x root root Nov : -
-rw-------. root root Oct : anaconda-ks.cfg
-rw-r--r--. root root Oct : install.log
-rw-r--r--. root root Oct : install.log.syslog
-rw-r--r-- root root Dec : luo1.tar.gz
drwxr-xr-x root root Dec : luoahong
-rw-r--r-- root root Nov : luo.conf
-rw-r--r-- root root Nov : nginx.conf
-rw-r--r-- root root Nov : oldboy---.tar.gz
drwxr-xr-x root root Nov : oldboydir
lrwxrwxrwx root root Nov : oldboydir_hard_link -> oldboydir
lrwxrwxrwx root root Nov : oldboydir_soft_link -> oldboydir
-rw-r--r-- root root Nov : oldboy.log
drwxr-xr-x root root Nov : p
drwxr-xr-x root root Dec : test

实例2:借助-exec选项与其他命令结合使用

 找出当前目录下所有root的文件,并把所有权更改为用户tom
find .-type f -user root -exec chown tom {} \;
上例中,{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。 找出自己家目录下所有的.txt文件并删除
find $HOME/. -name "*.txt" -ok rm {} \;
上例中,-ok和-exec行为一样,不过它会给出提示,是否执行相应的操作。 查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中
find . -type f -name "*.txt" -exec cat {} \;> all.txt
将30天前的.log文件移动到old目录中
find . -type f -mtime + -name "*.log" -exec cp {} old \;

实例3:删除7前以前的日志文件

[root@zabbix-agent log]# find  ./ -type f -name "*.log" -mtime +|xargs rm -f  

实例4:搜索大于10KB的文件

[root@zabbix-agent ~]# find . -type f -size +10k

实例5:搜索出深度距离当前目录至少2个子目录的所有文件

[root@zabbix-agent ~]# find . -mindepth  -type f

实例6:向下最大深度限制为3

 [root@zabbix-agent ~]# find . -maxdepth  -type f 

14-find 查找文件的更多相关文章

  1. 菜鸟学Linux命令:find命令 查找文件

    find命令是Linux下最常用的命令之一,灵活的使用find命令,你会发现查找文件变得十分简单. 命令格式 find [指定查找目录]  [查找规则(选项)]  [查找完后执行的动作] 参数规则 - ...

  2. Linux 查找文件命令 find whereis locate

    Linux 有三个查找文件的命令:find, whereis, locate 其中find 不常用,whereis与locate经常使用,因为find命令速度较慢,因为whereis与locate是利 ...

  3. 【Linux】常用指令、ps查看进程、kill杀进程、启动停止tomcat命令、查看日志、查看端口、find查找文件

    1.说出 10 个 linux 常用的指令 1) ls 查看目录中的文件 2)cd /home 进入 '/ home' 目录:cd .. 返回上一级目录:cd ../.. 返回上两级目录 3)mkdi ...

  4. 查找文件工具find

    与locate.whereis命令相比,find具有本质的区别: 首先,find是从指定的位置进行遍历查找(可以理解为对文件和目录进行逐一查找). 其次,find可以查找具有某一类特征的文件(例如查找 ...

  5. 第14章 启动文件详解—零死角玩转STM32-F429系列

    第14章     启动文件详解 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ...

  6. find命令的基础用法以及按文件修改时间查找文件

    一般文件查找方法: find 命令学好是一件很有趣的事情,也可以帮你在查找系统文件的时候事倍功半,还可以与正则表达式结合使用,功能强大,是一个很好的查找工具.可以整体提高你的系统管理能力. 基础用法 ...

  7. Linux fing cd 查找文件/文件夹并进入目录命令

    查找文件|文件夹并进入目录命令:cd $() [root@localhost /]# cd $(dirname "`find / -name 'ifcfg-ens33'`") // ...

  8. Linux find命令:在目录中查找文件(超详解)

    find 是 Linux 中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限.大小.时间.inode 号等来搜索文件.但是 find 命令是直接在硬盘中进行搜索的,如果指定的搜索范围过大,f ...

  9. day12 查找文件

    day12 查找文件 find命令:查找文件 find命令:在linux系统中,按照我们的要求去查询文件. 格式: find [查询的路径] [匹配模式] [匹配规则] 匹配模式: -name : 按 ...

  10. locate 最快的查找文件的命令 NB

    我见过最NB的查找文件最快的命令 [root@NB data]# locate teamviewer. /data/Software/teamviewer.i686.rpm /home/ok/.loc ...

随机推荐

  1. python 的异常及其处理

    Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Python教程会具体介绍. 断言 ...

  2. [译] 企业级 OpenStack 的六大需求(第 3 部分):弹性架构、全球交付

    全文包括三部分: 第一部分:API 高可用和管理以及安全模型 第二部分:开放架构和混合云兼容 第三部分:弹性架构和全球交付 需求 5 - 扩展.弹性和性能 企业级的内容很丰富.过去,企业级往往和高可靠 ...

  3. Medusa引擎开源了

    首先贴出 Github地址 然后博客地址 相比于市面上其他的著名游戏引擎,例如Unity,cocos2dx,Unreal,Medusa游戏引擎目前还非常的简陋,目前实现的功能还集中在2D部分,3D的虽 ...

  4. 网管把握市场需求,其实一点都不可怜 转载于 [http://tonyxiaohome.blog.51cto.com/925273/955589]

    呵呵,这是我到51CTO做实习斑竹,回复的第一篇帖子,原帖在这里: http://bbs.51cto.com/thread-940532-1.html 这位朋友可能最近受到点挫折,所以有点小灰心,我呢 ...

  5. POJ 1228 Grandpa's Estate --深入理解凸包

    题意: 判断凸包是否稳定. 解法: 稳定凸包每条边上至少有三个点. 这题就在于求凸包的细节了,求凸包有两种算法: 1.基于水平序的Andrew算法 2.基于极角序的Graham算法 两种算法都有一个类 ...

  6. 用jsmooth + inno生成exe并制作简单安装包

    思路: 先由 Jsmooth把jar和相关资源打包生成exe,再由Inno把exe和资源文件打成安装包 一  Jsmooth 1 下载 安装 Jsmooth   地址:jsmooth.sourcefo ...

  7. 嵌入式Linux驱动学习之路(六)u-boot启动内核

    内核启动是需要必要的启动参数.不能开机自动完全从0开始启动,需要uboot帮助内核实现重定位并提供参数. 首先,uboo会从Kernel分区中读取bootcmd环境变量,根据环境变量可自动启动. 分区 ...

  8. Eclipse启动时布局不合理调整

    1. 关掉 启动页 2. 关掉InstSearch页 3.修正InSearch布局 3.1 默认InstSearch不合理,影响使用. 3.2 Inst 搜索一次,然后最小化InstSearch框,再 ...

  9. 实现gridview空白处的点击事件

    今天做了一个girdview,要求长按item出现删除按钮,点击空白处取消,长按出现按钮可以,但是点击空白处有问题,如果点击到书籍的空白处 可以用适配器的布局点击事件处理,但是空白区域不是item,不 ...

  10. apache网站访问缓慢的处理记录

    朋友在阿里云上开通了一台ubuntu服务器(2G内存,2核CPU),用apache搭建了一个公众号网站.网站初期,他没有做相应的优化,在后续公众号推广活动时,网站并发突增,访问十分缓慢.登陆服务器,具 ...