find 查找指定时间文件

本文介绍了一个bash脚本,用于在特定目录下查找指定日期范围内的文件。通过使用find命令结合-newermt选项,该脚本能够高效地筛选出在2017年5月7日至2017年5月8日之间修改的文件。

find /usr/ -newermt ‘2017-05-07’ ! -newermt ‘2017-05-08’

在/usr/下查找2017-05-07-2017-05-08的文件

!/bin/bash

for file in /*; do
if [ $file == “/opt” -o $file == “/proc” -o $file == “/run” -o $file == “/s ] ;then
continue
fi
echo ###########$file############
find $file -newermt ‘2017-05-07’ ! -newermt ‘2017-05-08’
echo ###########################
echo
done

<think> 我们使用find命令查找包含特定内容的文件。通常需要结合grep,例如: find /path -type f -exec grep -l "内容" {} \; 或者使用更高效的方式: find /path -type f | xargs grep "内容" 但注意:如果文件名包含空格,建议使用-print0和xargs -0 例如:find /path -type f -print0 | xargs -0 grep "内容" 另外,如果只想在特定类型的文件查找,可以加上-name参数,例如只在.c文件查找find /path -type f -name "*.c" -exec grep -l "内容" {} \; 下面给出一个具体示例: 在当前目录及子目录的所有.py文件查找字符串"import os" 命令:find . -type f -name "*.py" -exec grep -l "import os" {} \; 如果需要显示匹配行的内容(而不仅仅是文件名),可以去掉-l参数: find . -type f -name "*.py" -exec grep "import os" {} \; 注意:如果要忽略大小写,可以在grep中加入-i选项。 另外,如果查找的内容包含特殊字符(如$、空格等),建议用单引号括起来。 §§相关问题§§ 1. 如何使用find命令在Linux系统中查找最近修改过的文件? 2. 在使用find结合grep时,如何避免权限不足的错误提示? 3. 如何利用find命令查找并删除符合特定条件的文件? 4. 在大型文件系统中使用find查找内容时,如何优化性能? </think> 在 Linux 系统中,使用 `find` 命令结合其他工具(如 `grep`)可以高效查找包含特定内容的文件。以下是详细方法和示例: ### 基础查找方法 1. **简单内容查找**: ```bash # 在当前目录及子目录的所有文件查找 "hello" find . -type f -exec grep -l "hello" {} \; ``` - `-type f`:限定查找普通文件 - `-exec ... {} \;`:对每个找到的文件执行命令 - `grep -l`:仅显示包含匹配内容的文件名 2. **指定文件类型**: ```bash # 在 .txt 文件查找 "error" find /var/log -name "*.txt" -exec grep -l "error" {} \; ``` ### 高级技巧 1. **忽略大小写**: ```bash find ~/docs -type f -exec grep -il "warning" {} \; # -i 参数忽略大小写 ``` 2. **多条件查找**: ```bash # 在 .conf 文件查找包含 "port" 且包含 "ssl" 的文件 find /etc -name "*.conf" -exec grep -q "port" {} \; -exec grep -l "ssl" {} \; ``` 3. **正则表达式查找**: ```bash # 查找包含 IP 地址的文件(使用扩展正则) find . -type f -exec grep -lE '([0-9]{1,3}\.){3}[0-9]{1,3}' {} \; ``` ### 性能优化 1. **使用 `xargs` 加速**: ```bash find /data -type f -print0 | xargs -0 grep -l "critical" ``` - `-print0` 和 `-0` 处理含空格的文件名 2. **排除目录/文件**: ```bash find . -type f ! -path "*/.git/*" -exec grep -l "TODO" {} \; ``` ### 输出控制示例 | 需求 | 命令 | |------|------| | 显示匹配内容 | `find . -type f -exec grep "pattern" {} \+` | | 显示行号 | `find src/ -name "*.c" -exec grep -n "main(" {} \+` | | 统计匹配次数 | `find logs/ -name "*.log" -exec grep -c "404" {} \+` |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值