【Linux常见命令】find命令
find - search for files in a directory hierarchy
find命令用来在指定目录下查找文件。
任何位于参数之前的字符串都将被视为欲查找的目录名。
如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
语法:
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
参数:
- -type 文件类型:
- 文件f(file),
- 目录d(directory),
- 字符串c(character),
- 块b(block),
- s(socket),
- l(link)符号链接
- -name 按名字查找 后接“文件名”,支持正则表达式和通配符
- -mtime 按照文件的mtime修改时间查找文件(modify),文件内容被修改的最后时间
- -atime 访问时间(access),文件中的数据库最后被访问的时间
- -ctime 变化时间(change),文件内容被修改的最后时间
- ! 取反
- find . -type f ! -name 'file.txt' 不是名字叫file.txt的所有文件
- -perm 644,755 权限查找
- -size n 文件大小
- find . -size +10k 大于10k的文件
- 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组
- -exec 执行命令
- find /data -type f -name 'a.txt' -exec rm {} \;
- 在指定目录/data下面查找类型为文件file,名称为a.txt的文件,将find找到的内容给到{}中,执行删除命令。
示例:
删除找到的文件
[root@oldboy data]# echo test >a.txt
[root@oldboy data]# ls
a.txt oldboy.txt
[root@oldboy data]# find /data -type f -name 'a.txt' -exec rm {} \;
[root@oldboy data]# ls
oldboy.txt
[root@oldboy data]# find /data -type f -name 'oldboy.txt' -exec rm {} \;
[root@oldboy data]# ls

批量创建1-10的.txt文件,通过查找命令将找到的所有.txt文件通过管道符交给xargs命令,将所有文件放在一行,再由rm -f强制删除。
[root@oldboy data]# touch {1..10}.txt
[root@oldboy data]# ls
10.txt 2.txt 4.txt 6.txt 8.txt
1.txt 3.txt 5.txt 7.txt 9.txt
[root@oldboy data]# find /data -type f -name '*.txt' |xargs
/data/2.txt /data/5.txt /data/3.txt /data/9.txt /data/7.txt
/data/1.txt /data/4.txt /data/10.txt /data/8.txt /data/6.txt
[root@oldboy data]# find /data -type f -name '*.txt' |xargs rm -f
[root@oldboy data]# ls
在脚本中删除文件或目录时,**生产环境**的使用方法一般为:
- 和xargs搭配用法
- 删除在/logs目录下,修改时间在15天以前的'.log'文件
- find /logs -type f -name '\*.log' -mtime +15 |xargs rm -f
- 删除在/logs目录下,以oldboy结尾的修改时间再30天以前的目录
- find /logs-type d -name '\*oldboy' -mtime +30 |xargs rm -rf
- 删除在/logs目录下,修改时间在15天以前的'.log'文件
- 使用find的-exec
- 在/logs目录中查找更改时间在5日以前的文件并删除它们
- find /logs -type f -name '\*.log' -mtime +5 -exec rm {} \;
- 在/logs目录中查找更改时间在5日以前的文件并删除它们

- -mtime 按修改时间查找modify time
- +7 代表7天以前[很久以前,截止到7天以前)
- 7 代表最近的第7天当天
- -7 代表最近7天(7天,今天now)
重要提示:find命令是生产环境中极重要的一个命令,要精通才好。
【Linux常见命令】find命令的更多相关文章
- Linux常见目录及命令介绍
一.Linux中常用的目录介绍: / -根目录 /bin -命令保存目录(普通用户亦可读取的命令) /boot -启动目录,启动相关文件 /d ...
- linux 常见名词及命令(三)
tar 用于对文件打包压缩或解压. 示例: 打包并压缩文件:tar -czvf 压缩包名.tar.gz 文件名 解压并展开压缩包:tar -zxvf 压缩包名.tar.gz -c 创建压缩文件 -x ...
- 性能工具之linux常见日志统计分析命令
引言 我前几天写过的性能工具之linux三剑客awk.grep.sed详解,我们已经详细介绍 linux 三剑客的基本使用,接下来我们看看具体在性能测试领域的运用,本文主要介绍的是在 Tomcat 和 ...
- linux 常见名词及命令(一)
linux PK wondows 稳定且有效率.免费或少许费用.漏洞少且修补快.多任务多用户. 安全的用户及文件权限策略.适合小内核程序的嵌入系统.相对不耗资源. 热门的开源系统 红帽企业系统(R ...
- linux 常见名词及命令(五)
计划任务服务之一次性任务: at <时间> 安排一次性任务 atq 或at -l 查看任务列表 at -c 序号 预览任务与设置环境 atrm 序号 删除任务 安排任务示例: 在23:30 ...
- Linux常见的Shell命令
1.具体的shell命令用法可以通过help或man命令进入手册来查询其具体的用法.2.终端本质上对应着linux上的/dev/tty设备,linux的多用户登录就是通过不同的/dev/tty设备完成 ...
- linux 常见名词及命令(六)
查看软件安装位置 : dpkg -L 软件包名字 ubuntu环境的apache相关命令: 查看是否启动:ps -aux | grep httpd 或者 netstat -an | grep :80 ...
- linux 常见名词及命令(四)
yum仓库的配置 yum仓库的配置文件存放在/etc/yum.repos.d/目录中. 第一步:切换到/etc/yum.repos.d/目录中. 第二步:使用vim编辑器打开一个名为'rhel7.re ...
- linux 常见名词及命令(二)
pwd 用于显示当前的工作目录. cd 用于切换工作路径 cd - 切换到上一次的目录 cd ~ 切换到家目录 cd ~username 切换到其他用户的家目录 cd .. 切换到上级目录 ls 用于 ...
- Linux下的常见压缩解压缩命令
Linux常见压缩解压缩命令 常见压缩文件扩展名 .Z compress 程序压缩的文件: .zip zip 程序压缩的文件: .gz gzip 程序压缩的文件: .bz2 bzip2 程序压缩的文件 ...
随机推荐
- 《快速认识 Three.js 》
此文仅作备份之用,为了更好的阅读体验,建议访问原文链接:<Three.js - 走进3D的奇妙世界.> ,感谢原作者的好文.
- 创建一个tar备份包
创建一个tar备份包 2.1问题 本例要求使用tar工具完成以下备份任务: 创 ...
- thinkphp后端开发ajax接口开发测试
数据自动填充,Firefox的网络查看JSON数据,查错. 同时,用getLastSql函数查询,并且开启日志文件记录网页执行的全过程,还可以用thinkPHP内置的trace的跟踪. 谁有更好地方法 ...
- nginx产品环境安全配置-主配置文件
以下配置为产品环境的nginx基于安全和效率的主配置文件,不包含fastcgi相关配置 cat /etc/nginx/nginx.conf user nginx; worker_processes a ...
- es搜索排序不正确
沿用该文章里的数据https://www.cnblogs.com/MRLL/p/12691763.html 查询时发现,一模一样的name,但是相关度不一样 GET /z_test/doc/_sear ...
- Google 浏览器 离线包下载方式
最近因工作需要,需要安装google浏览器,并且安装在系统固定目录,用360软件管理下载后发现默认安装在C:\Users\administrator\AppData\Local\Google\Chro ...
- hadoop(九)启动|关闭集群(完全分布式六)|11
前置章节:hadoop集群namenode启动ssh免密登录(hadoop完全分布式五)|11 集群启动 配置workers(3.x之前是slaves), 删除localhost,添加102/103/ ...
- Java包机制和Javadoc的使用
1.什么是包机制? 包(package)其实本质上就是一个文件夹,使用包是为了让相同类名的两个类可以使用,也就是操作系统中的文件夹,用来解决重名并且让相同的功能类放在同一个包,使开发更加有条理. 注意 ...
- Keepalived实现Nginx负载均衡高可用
第一章:keepalived介绍 VRRP协议 目的就是为了解决静态路由单点故障问题的 第二章: keepalived工作原理 2.1 作为系统网络服务的高可用功能(failover) keepali ...
- Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(四)之Operators
At the lowest level, data in Java is manipulated using operators Using Java Operators An operator ta ...