【linux】find删除指定时间之前的文件

今天磁盘满了,想删掉一些老的日志文件。开始想写个python脚本,转念一想,可能shell脚本好点。结果发现,根本不用写脚本,一个find指令就可以解决问题了。

先上指令

find .  -type f  -name *.log  -mtime +180  -exec rm {} \;

解析:

find 后面紧跟的是要查找的目录,. 表示当前目录

-type f:指定查找对象为文件

-name *.log:指定查找对象名称以.log结尾

-mtime +180: 查找180天以前的老文件

-exec rm {} \;  :执行删除命令,这句长得很奇怪,后面有个 {} \; 是必须的,也可以执行其他指令,比如ls, rm -i之类的

下面指令显示查找到文件的详细信息

find . -type f -mtime -180 -exec ls -l {} \; | more

后面用管道,实现分页显示

时间: 2024-10-14 02:05:29

【linux】find删除指定时间之前的文件的相关文章

Shell定时删除指定时间之前的文件

模板cat delbak.sh #!/bin/sh location="/root/sqlbak/" find $location -mtime +30 -type f |xargs rm -f ps: location 是设置查找的目录--mtime +30 是设置时间为30天前-type f 这周查找的类型为文件 然后加入crontab定时来删除: crontab -l 10 4 1 * * /bin/sh /root/soft_shell/delbak.sh 设定为每个月1号晚上

按创建日期删除指定日期之前的文件夹及文件夹下的所有子目录

转载void CTestDlg::DeleteDirectory(CString strDir) { if(strDir.IsEmpty()) return; //首先删除文件及子文件夹 CFileFind ff; BOOL bFound = ff.FindFile(strDir+"\\*", 0); while(bFound) { bFound = ff.FindNextFile(); CString filename = ff.GetFileName(); if(filename=

MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)

MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据) 分类: MySql5.x2014-06-23 15:16 1266人阅读 评论(0) 收藏 举报 mysql数据库 [sql] view plaincopy <span style="font-family: 'Microsoft YaHei'; font-size: 14px;">MySQL定时任务event</span> 由于一些业务需求,我们可能需要定时清除数据库一些废弃的数据

【Linux】linux中删除指定文件外所有其他文件(夹)的问题

今天碰到要删除指定文件(夹)外的其他文件的问题.网上查到的方法是这样的 需要在当前文件夹中进行: rm -rf !(keep) #删除keep文件之外的所有文件 rm -rf !(keep1|keep2) #删除keep1和keep2文件之外的所有文件 在Ubuntu14.04下有个大坑,keep1和keep2与“|"之间千万不能留空格,就是!(keep1 | keep2).这样的话会删除当前文件夹内的所有文件. 应该这样写(keep1|keep2). 具体原因未知,等慢慢寻找.以后再来补充.

Linux 自动删除N天前的文件

Linux是一个很能自动产生文件的系统,日志.邮件.备份等.但是对于一些时间久远的日志可以设置定时任务删除.语句写法:find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;例1:find /usr/local/backups -mtime +30 -name "*.*" -exec rm -rf {} \;将/usr/local/backups目录下所有30天前带"."的文件删除find:linux

Linux Centos 删除除某(多)个文件之外的所有文件

通常我们通过rm -rf  *可以直接强制删除当前文件夹里面的所有内容,但是有些时候我们需要保留一些文件,就比如,网站转移更新需要保留程序压缩包等就需要用到在linux centos环境下需要删除除某(多)个文件之外的所有文件的功能了.具体方法如下: rm -f  !(a) 如果保留a和b,可以运行rm -f !(a|b)来实现,不过一般bash中运行后会提示 "-bash: !: event not found " 可以通过运行:shopt -s extglob 来解决. set命令

linux自动删除规定天数前的文件

公司在线上有一个监控系统,每天都会制造大量文件,然后就需要删除规定天数以前的文件,用来保证硬盘不会满造成服务中断. 语句也很简单, #delete 15 days ago picture files find /home/monitoring/ -mtime +15 -exec rm -rf {} \; -mtime -n +n 按文件更改时间来查找文件,-n指n天以内,+n指n天以前 -exec: find命令对匹配的文件执行该参数所给出的shell命令.相应命令的形式为'command' {

删除指定目录下过期文件并打印日志

肯定会遇到这样的事,有一个文件夹,每天都在生成文件,那么如何去删除那些过期的文件呢.废话不多说,直接上代码: import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.text.SimpleDateFormat; public class DeleteFileImpl { //这三个变量也可以在配置文件里面配置,但是需要用到@

Jquery配合Asp.Net无刷新删除指定服务器上的文件!

前台单击文件,jQuery删除后台相应真实的文件,包含了2个页面,一个是显示图片的页面,一个是传递文件名,然后删除真实图片的页面.具体的代码如下: ShowPics.htm: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=&quo