【Linux】用find删除大于30天的文件

1.删除文件命令:

find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;

实例命令:
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
说明:
将/opt/soft/log/目录下所有30天前带".log"的文件删除。具体参数说明如下:
find:linux的查找命令,用户查找指定条件的文件;
/opt/soft/log/:想要进行清理的任意目录;
-mtime:标准语句写法;
+30:查找30天前的文件,这里用数字代表天数;
"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} \; :固定写法,一对大括号+空格+\+; 

2.计划任务:
若嫌每次手动执行语句太麻烦,可以将这小语句写到一个可执行shell脚本文件中,再设置cron调度执行,那就可以让系统自动去清理相关文件。

2.1创建shell:
touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建一个可执行文件auto-del-30-days-ago-log.sh,并分配可运行权限

2.2编辑shell脚本:
vi auto-del-30-days-ago-log.sh
编辑auto-del-30-days-ago-log.sh文件如下:
#!/bin/sh
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
ok,保存退出(:wq)。

2.3计划任务:
#crontab -e
将auto-del-30-days-ago-log.sh执行脚本加入到系统计划任务,到点自动执行
输入:
10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1
这里的设置是每天凌晨0点10分执行auto-del-7-days-ago-log.sh文件进行数据清理任务了。
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
说明:
将/opt/soft/log/目录下所有30天前带".log"的文件删除。具体参数说明如下:
find:linux的查找命令,用户查找指定条件的文件;
/opt/soft/log/:想要进行清理的任意目录;
-mtime:标准语句写法;
+30:查找30天前的文件,这里用数字代表天数;
"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} \; :固定写法,一对大括号+空格+\+; 

2.计划任务:
若嫌每次手动执行语句太麻烦,可以将这小语句写到一个可执行shell脚本文件中,再设置cron调度执行,那就可以让系统自动去清理相关文件。

2.1创建shell:
touch /opt/soft/bin/auto-del-30-days-ago-log.sh
chmod +x auto-del-30-days-ago-log.sh
新建一个可执行文件auto-del-30-days-ago-log.sh,并分配可运行权限

2.2编辑shell脚本:
vi auto-del-30-days-ago-log.sh
编辑auto-del-30-days-ago-log.sh文件如下:
#!/bin/sh
find /opt/soft/log/ -mtime +30 -name "*.log" -exec rm -rf {} \;
ok,保存退出(:wq)。

2.3计划任务:
#crontab -e
将auto-del-30-days-ago-log.sh执行脚本加入到系统计划任务,到点自动执行
输入:
10 0 * * * /opt/soft/log/auto-del-7-days-ago-log.sh >/dev/null 2>&1
这里的设置是每天凌晨0点10分执行auto-del-7-days-ago-log.sh文件进行数据清理任务了。

转自:https://zhidao.baidu.com/question/198159355.html

<think>好的,用户想在Linux中使用find命令查找文件,需要了解相关的命令和用法。首先,我得回忆一下find的基本结构,它通常由路径、表达式和动作组成。用户提到的几个引用里提到可以按名字、所有者、时间、权限查找,这些都需要详细说明。 记得基本语法是find [路径] [表达式],比如按文件名查找用-name选项,这里要注意大小写,可能需要用-iname来忽略大小写。然后用户可能需要查找特定类型的文件,比如-type f代表普通文件,-type d是目录。另外,按文件大小查找可以用-size参数,比如+10M表示大于10MB的文件。 时间相关的参数也很重要,比如-mtime用于修改时间,-atime访问时间。比如查找7修改过的文件,用-mtime +7。权限方面,-perm可以根据权限查找,比如找755权限的文件。 用户可能还需要对查找到的文件执行操作,比如使用-exec选项,后面跟上命令,记得用{}代替文件名,并用\;结束。例如删除所有.txt文件,但要注意安全,避免误删。 还有组合条件,比如同时满足多个条件用-a,或者条件用-o。排除某个目录可以用-prune,比如查找时排除.git目录。另外,引用中提到按文件内容查找,可能需要结合grep,比如find配合xargs和grep一起使用,例如查找包含特定字符串的文件。 用户提供的引用里提到find可以按内容查找,但实际find本身不支持内容查找,需要结合其他命令,这点需要澄清。比如,用户可能混淆了find和grep的功能,但可以说明如何联合使用这两个命令来实现按内容查找。 需要注意的常见错误包括路径的正确性,选项的顺序是否正确,以及权限问题。比如用户可能没有权限访问某些目录,导致查找结果不全。此外,使用通配符时要记得用引号括起来,避免shell扩展。 最后,生成相关问题时要覆盖常见的使用场景,比如按时间、大小、权限查找,以及如何排除目录或执行动作。确保问题能帮助用户进一步探索find命令的高级用法。</think>### Linux find命令文件查找详解 #### 一、基础语法结构 find命令的标准格式为: $$find [搜索路径] [表达式] [操作]$$ 其中搜索路径默认为当目录,表达式用于定义搜索条件,操作用于对结果进行处理[^1] #### 二、核心查找方式 1. **按名称查找** `$find /var/log -name "*.log"` 查找/var/log目录下所有.log结尾的文件 (添加`-iname`可忽略大小写) 2. **按类型过滤** `$find ~ -type f -name "*.conf"` 查找用户主目录下所有.conf配置文件 (类型参数:f-文件/d-目录/l-链接) 3. **按时间筛选** `$find /opt -mtime -7` 查找/opt目录下7内修改过的文件 (时间参数:-atime访问时间/-ctime状态变更时间) 4. **按大小定位** `$find /home -size +100M` 查找/home目录下超过100MB的大文件 (单位支持:c-字节/k-千字节/M-兆字节/G-吉字节) 5. **权限匹配** `$find /etc -perm 644` 查找/etc目录下权限为644的文件 #### 三、组合查询示例 `$find /var/www \( -name "*.php" -o -name "*.html" \) -mtime -30` 查找/var/www目录下30内修改过的php或html文件 (`-a`表示AND,`-o`表示OR,`()`需转义) #### 四、结果处理技巧 1. **执行命令** `$find /tmp -name "*.tmp" -exec rm {} \;` 删除所有临时文件(危险操作需谨慎) 2. **排除目录** `$find . -path "./.git" -prune -o -name "*.js"` 查找当目录下js文件但排除.git目录 3. **内容联合搜索** `$find /var/log -type f -name "*.log" | xargs grep "ERROR"` 在所有日志文件中搜索ERROR关键词[^3] #### 五、注意事项 1. 使用通配符时需加双引号:`-name "*.txt"` 2. 系统目录需要sudo权限:`$sudo find / -name kernel` 3. 深度控制参数:`-maxdepth 3`限制搜索层级
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值