【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 程序压缩的文件 ...
随机推荐
- Java 程序该怎么优化?(技巧篇)
搬砖者:为什么程序总是那么慢?它现在到底在干什么?时间都花到哪里去了? 面试官:简单谈谈 Java 程序性能优化? 1. 字符串处理优化,乃优化之源. 研发过程中,String 的 API 用的应该是 ...
- [原创] 关于步科eview人机界面HMI的使用 - HMI做Slave - Modbus RS485通讯
做测试设备,或者自动化设备常常用到HMI 触摸屏 我有个案子用到了 步科的eview 触摸屏 型号 ET070 我的是单片机主板 控制 HMI显示,通讯用485 MODBUS 单片机板充当 主控 , ...
- ALPN(Application Layer Protocol Negotiation)
ALPN (Application Layer Protocol Negotiation)是TLS的扩展,允许在安全连接的基础上进行应用层协议的协商.ALPN支持任意应用层协议的协商,目前应用最多是H ...
- redis持久化(RDB、AOF、混合持久化)
redis持久化(RDB.AOF.混合持久化) 1. RDB快照(snapshot) 在默认情况下, Redis 将内存数据库快照保存在名字为 dump.rdb 的二进制文件中. 你可以对 Redis ...
- Spring(三):bean的自动装配
Bean的自动装配 自动装配是Spring满足bean依赖的一种方式. Spring会在上下文中自动寻找,并自动给bean装配属性 Spring中三种装配方式 在xml中显式的配置. 在java中显式 ...
- 会 python 的一定会爬虫吗,来看看
文章更新于:2020-02-18 注:python 爬虫当然要安装 python,如何安装参见:python 的安装使用和基本语法 一.什么是网络爬虫 网络爬虫就是用代码模拟人类去访问网站以获取我们想 ...
- cmd批处理转义字符%的详细解释
cmd批处理转义字符%的详细解释 在命令行中使用for时不需要双%,这源于命令解释器对命令行与批处理的处理方式不同. 1.%是个ESCAPE字符,通常将之译为转义字符,但也有更形象的译名脱逸字符.逃逸 ...
- Davor COCI 2018
当题目中有多组解,但要某值最大,该怎么办? 本文为博客园ShyButHandsome的原创作品,转载请注明出处 题目描述 After successfully conquering the South ...
- 常见DL网络模型参数
- ASE课程总结 by 林建平
设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的辅助用户在阅读英文文献时记忆生词,提高用户的生词量,减少用户的阅读障碍.定义非常清晰,要有查 ...