一、命令简介

  Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。find 命令有非常大的灵活性,可以向其指定丰富的搜索条件(如文件权限、属主、属组、文件类型、日期和大小等)来定位系统中的文件和目录。此外,find 还支持对搜索到的结果进行多种类型的命令操作。

二、使用示例

1、查找指定文件

使用-name参数查找指定文件
[root@test1 apache-tomcat-9.0.44]# find . -name startup.sh
./bin/startup.sh

2、查找指定后缀文件

使用正则表达式通配符查找匹配的文件
[root@test1 apache-tomcat-9.0.44]# find . -name *.sh
./bin/catalina.sh
./bin/ciphers.sh
./bin/configtest.sh
./bin/daemon.sh
./bin/digest.sh
./bin/makebase.sh
./bin/setclasspath.sh
./bin/shutdown.sh
./bin/startup.sh
./bin/tool-wrapper.sh
./bin/version.sh

3、查找指定类型的文件

使用-type支持指定类型的文件
[root@test1 apache-tomcat-9.0.44]# find ./webapps/ -type d
./webapps/
./webapps/qiuhun
./webapps/qiuhun/renxi

4、查找最近修改过的文件

查找最近2天内有更新的文件
[root@test1 apache-tomcat-9.0.44]# find ./logs -mtime -2
./logs
./logs/catalina.out
./logs/catalina.2021-03-31.log
./logs/localhost.2021-03-31.log
./logs/manager.2021-03-31.log
./logs/host-manager.2021-03-31.log
./logs/localhost_access_log.2021-03-31.txt

5、查找指定目录深度下的文件

查找/var/log目录下最小深度为2的log文件
[root@test1 apache-tomcat-9.0.44]# find /var/log/ -mindepth 2 -name *.log
/var/log/audit/audit.log
/var/log/gdm/:0-greeter.log
/var/log/gdm/:0.log
/var/log/tuned/tuned.log
/var/log/anaconda/anaconda.log
/var/log/anaconda/X.log
/var/log/anaconda/program.log
/var/log/anaconda/packaging.log
/var/log/anaconda/storage.log
/var/log/anaconda/ifcfg.log
/var/log/anaconda/ks-script-oDrhPT.log
/var/log/anaconda/ks-script-ohL_89.log
/var/log/anaconda/journal.log
/var/log/vmware/rc.local.log

6、根据inode删除文件

首先通过ls -li查找inode
[root@test1 apache-tomcat-9.0.44]# ll -i
然后通过find -inum inode号 -delete指定文件,此方法对于删除上传到服务器后文件名乱码的文件非常有用
[root@test1 apache-tomcat-9.0.44]# find -inum 2663645 -delete

7、清除查找到的超过指定时间的日志文件

清除查找到的文件,删除前确认
[root@test1 apache-tomcat-9.0.44]# find ./logs/ -mtime +5 -ok rm {} ;
< rm … ./logs/catalina.2021-03-26.log > ? y
< rm … ./logs/localhost.2021-03-26.log > ? y
< rm … ./logs/manager.2021-03-26.log > ? y
< rm … ./logs/host-manager.2021-03-26.log > ? y
< rm … ./logs/localhost_access_log.2021-03-26.txt > ? y

8、查找当前目录下具有指定权限的文件并获取完整路径

使用perm参数查找指定权限的文件
[root@test1 apache-tomcat-9.0.44]# find /home/wuhs/apache-tomcat-9.0.44/bin -type f -perm 750 -exec ls -l {} \;
-rwxr-x— 1 wuhs wuhs 25294 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/catalina.sh
-rwxr-x— 1 wuhs wuhs 1997 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/ciphers.sh
-rwxr-x— 1 wuhs wuhs 1922 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/configtest.sh
-rwxr-x— 1 wuhs wuhs 9100 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/daemon.sh
-rwxr-x— 1 wuhs wuhs 1965 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/digest.sh
-rwxr-x— 1 wuhs wuhs 3382 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/makebase.sh
-rwxr-x— 1 wuhs wuhs 3708 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/setclasspath.sh
-rwxr-x— 1 wuhs wuhs 1902 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/shutdown.sh
-rwxr-x— 1 wuhs wuhs 1904 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/startup.sh
-rwxr-x— 1 wuhs wuhs 5540 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/tool-wrapper.sh
-rwxr-x— 1 wuhs wuhs 1908 Mar 5 05:52 /home/wuhs/apache-tomcat-9.0.44/bin/version.sh

9、查找指定用户的文件

查找webapps目录下属主为wuhs用户的文件
[root@test1 apache-tomcat-9.0.44]# find ./webapps/ -user wuhs -type f -print
./webapps/qiuhun/说明.txt
./webapps/qiuhun/qiuhun.html
./webapps/qiuhun/renxi.mp3
./webapps/qiuhun/qiuhun.html.bak
./webapps/qiuhun/WebForm1.aspx.cs
./webapps/qiuhun/WebForm1.aspx
./webapps/qiuhun/WebForm1.aspx.designer.cs
./webapps/qiuhun/renxi/jscex-async.min.js
./webapps/qiuhun/renxi/jscex-jit.js
./webapps/qiuhun/renxi/jscex-builderbase.min.js
./webapps/qiuhun/renxi/jscex.min.js
./webapps/qiuhun/renxi/default.css
./webapps/qiuhun/renxi/love.js
./webapps/qiuhun/renxi/functions.js
./webapps/qiuhun/renxi/jscex-parser.js
./webapps/qiuhun/renxi/jscex-async-powerpack.min.js
./webapps/qiuhun/renxi/jquery.min.js
./webapps/qiuhun/index.html

10、查找指定大小的文件

查找超过1M的文件
[root@test1 apache-tomcat-9.0.44]# find . -size +1M -type f
./lib/catalina.jar
./lib/ecj-4.18.jar
./webapps/qiuhun/renxi.mp3

三、使用语法及参数说明

1、使用语法

usage:find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
用法:find [路径] [表达式选项] [行动]

2、常用表达式选项参数说明

选项 参数说明
-mount, -xdev 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n 在过去 n 分钟内被读取过
-anewer file 比文件 file 更晚被读取过的文件
-atime n 在过去n天内被读取过的文件
-cmin n 在过去 n 分钟内被修改过
-cnewer file 比文件 file 更新的文件
-ctime n 在过去n天内被修改过的文件
-empty 空的文件-gid n or -group name
-ipath p, -path p 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name 文件名称符合 name 的文件。iname 会忽略大小写
-size n 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type b/d/c/p/l/f 查是块设备、目录、字符设备、管道、符号链接、普通文件
-perm 按执行权限来查找
-user username 按文件属主来查找
-group groupname 按组来查找
-depth 指定查找目录深度
-follow 如果遇到符号链接文件,就跟踪链接所指的文件
-prune 忽略某个目录
-maxdepth 指定查找目录最大深度
-mindepth 指定查找目录最小深度
-version 查看版本
-help 获取帮助

3、常用行动参数说明

参数 参数说明
-delete 删除查找到的文件
-exec command 对查找到的文件执行command命令
-ok command 执行命令前需要进行确认
-printf 格式化输出

4、多条件组合参数

参数 参数说明
-o 是或者的意思
-a 是而且的意思
-not 是相反的意思

Linux命令之find命令相关推荐

  1. Linux 运维常用命令 find、awk、sed、grep、vi、ps、lsof、rpm

    先用一个脚本,模拟创建 14 个测试文件: #!/bin/bash for ((i=1;i<=10;i++)); do if [ $i -lt 3 ] thentouch /home/mysql ...

  2. Linux命令行与命令

    Linux命令行与命令 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux的命令是很重要的工具,也往往是初学者最大的瓶颈. ...

  3. linux查询重复数据库,Linux如何使用locate命令查找数据搜索数据库

    通常在Linux查找数据库我们都使用find,那么除了find命令我们还可以用locate命令,可以在搜寻数据库时快速找到档案,具体怎么使用呢?下面小编就给大家详细介绍下locate命令的用法. Li ...

  4. linux 命令删除命令,Linux 命令之删除命令

    在Linux下删除文件用rm命令,具体用法如下: rm [选项] 文件 选项说明: -f -force 忽略不存在的文件,强制删除,无任何提示 -i --interactive 进行交互式地删除 -r ...

  5. Linux下视频截取命令

    比如你有一个视频,然后你对其中某一段感兴趣,你想把他截取下来,并且不希望画面变差,(当然你也不想花钱买视频编辑软件),可以在Linux下使用如下命令: ffmpeg -ss 00:00:05 -t 0 ...

  6. Linux常用20条命令

    Linux常用20条命令 假装这里有个标题 1.cd 2.ls 3.grep 4.find 5.cp 6.mv 7.rm 8.ps 9.kill 10.kill all 11.file 12.tar ...

  7. VMware里的linux系统里的命令行里会有bee的声音,要如何关掉

    VMware里的linux系统里的命令行里会有bee的声音,要如何关掉 取消bell报警声的方法:登陆linux系统vi /etc/inputrc找到set bell-style none 将前面的# ...

  8. 执行远程linux命令,linux shell 远程执行命令

    经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn ...

  9. 小猿圈Linux学习-Linux种搜索的命令

    做Linux工程师的每天都不能少的工作就是搜索文件,这是他们的日常活动,很繁琐很枯燥,所以我们就需要知道一些搜索的命令,这些命令更高效更快捷,今天小猿圈就给大家分享4个可以搜索的Linux命令.. 方 ...

  10. linux文本处理常用命令

    linux文本处理常用命令 linux文本处理命令:grep.sed.printf.awk 1.grep grep的作用是按行查找字符,输出包含字符的行. #从文件查询 grep 'hello' fi ...

最新文章

  1. Center OS 5.5 下安装 和 配置 Tomcat 7
  2. boost智能指针之shared_ptr,scoped_ptr,intrusive_ptr,weak_ptr源码简析
  3. Scikit-Learn 与 TensorFlow 机器学习实用指南学习笔记 4 —— 数据探索与可视化、发现规律
  4. 几何梯度分析神经网络中不可信预测性
  5. 04_ClickHouse表引擎概述、MergeTree系列引擎、Log系列引擎、集成引擎、特定功能的引擎(学习笔记)
  6. IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0 实际解决方案
  7. 五、线程管理————GCD
  8. (十)nodejs循序渐进-高性能游戏服务器框架pomelo之介绍和安装篇
  9. [转帖]jQuery框架学习第八天:ASP.NET jQuery实施方案
  10. Ubuntu下定时重启程序
  11. 大华监控摄像机接入到小程序、公众号、网站视频直播配置流程
  12. 网页设计中常用的20个Web安全字体
  13. 去年我国软件业收入4.3万亿元 同比增长16.6%
  14. 六轴UR机械臂正逆运动学求解_MATLAB代码(标准DH参数表)
  15. Day20(lambda、stream、微服务、大数据、nginx)
  16. linux系统下多终端管理工具,terminator
  17. IDAE Keystore was tampered with报错解决
  18. 沙漠下新雨,树木爆翠绿,没有放弃与更新,就不成其智慧。我们不必时刻刷新微博和朋友圈,比起这些,刷新自我更加重要。我们并不需要生活在别处,不需要流于表面,我们需要时常更新生命。
  19. ms-sql数据类型和access数据类型大全
  20. Android百度地图(四):百度地图运动轨迹纠偏、去噪、绑路之百度鹰眼

热门文章

  1. 对抗样本(三)FGSM
  2. 京东一面:如何用 Nginx 禁止国外 IP 访问网站,直接凉凉!
  3. java sts安装步骤_如何安装STS
  4. Linux编辑f2fs,Linux 5.7 F2FS 文件系统正在添加对 Zstd 压缩算法的支持
  5. workbench中schema只显示一个库
  6. DSP技术及应用 知识点整理
  7. opencv实现阈值分割
  8. 台达变频器485通讯接线图_台达变频器RS485通讯设置
  9. STAR:转录组数据比对工具简介
  10. 大话数据结构 - 串