首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux删除n天前的文件

在Linux系统中,删除n天前的文件通常使用find命令结合-mtime选项和-exec选项来实现。以下是具体的步骤和示例代码:

基础概念

  • find命令:用于在目录树中查找文件,并执行指定的操作。
  • -mtime选项:根据文件的修改时间来查找文件。-mtime n表示查找n*24小时前修改过的文件。
  • -exec选项:对找到的结果执行指定的shell命令。

相关优势

  • 灵活性:可以根据多种条件(如时间、大小、权限等)查找文件。
  • 效率:直接在文件系统层面操作,速度快。
  • 安全性:可以通过预览模式先查看将要删除的文件列表,避免误删重要文件。

类型与应用场景

  • 定期清理日志文件:在服务器上,日志文件会不断增长,定期删除旧日志可以释放磁盘空间。
  • 备份清理:自动删除过期的备份文件,节省存储资源。

示例代码

假设你想删除当前目录及其子目录下所有7天前的文件,可以使用以下命令:

代码语言:txt
复制
find . -type f -mtime +7 -exec rm -f {} \;

这条命令的解释如下:

  • . 表示当前目录。
  • -type f 表示只查找文件类型。
  • -mtime +7 表示查找7天前的文件。
  • -exec rm -f {} \; 表示对找到的每个文件执行删除操作。

注意事项

  • 备份重要文件:在执行删除操作前,最好先备份重要数据。
  • 测试命令:可以先运行不带-exec选项的命令来查看将要删除的文件列表,例如:
  • 测试命令:可以先运行不带-exec选项的命令来查看将要删除的文件列表,例如:
  • 确认无误后再添加-exec rm -f {} \;执行删除。

解决常见问题

如果在执行删除操作时遇到权限问题,可以尝试在命令前加上sudo提升权限:

代码语言:txt
复制
sudo find /path/to/directory -type f -mtime +7 -exec rm -f {} \;

如果文件被其他进程占用导致无法删除,可以使用lsof命令找出占用文件的进程并结束它,或者稍后再试。

通过以上步骤和注意事项,你可以安全有效地删除Linux系统中n天前的文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux定时删除N天前的文件(文件夹)

近期在业务中,给定的磁盘只有22T容量,为了避免爆盘,业务需要定时清除数据,根据网上的资料总结了一下设置方法:可以使用find命令 find 路径 -mtime +天数 -type f -name "...文件名" -exec rm -rf {} ; find /tmp -mtime +30 -type f -name "*" -exec rm -rf {} \; /tmp --设置查找的目录; -mtime...+30 --设置修改时间为30天前; -type f --设置查找的类型为文件;其中f为文件,d则为文件夹 -name "*" --设置文件名称,可以使用通配符; -exec rm -rf --查找完毕后执行删除操作...分钟 取值范围:0-59 第二个*号表示时间中的 小时 取值范围:0-23 第三个*号表示一个月中的第几天,取值范围:1-31 第四个*号表示一年中的第几个月,取值范围:1-12 第五个*号表示一个星期中的第几天...,以星期天开始依次的取值为0~7,0、7都表示星期天

13.2K40

linux定时删除N天前的文件(文件夹)

近期在业务中,给定的磁盘只有22T容量,为了避免爆盘,业务需要定时清除数据,根据网上的资料总结了一下设置方法:可以使用find命令 find 路径 -mtime +天数 -type f -name “...文件名” -exec rm -rf {} ; find /tmp -mtime +30 -type f -name "*" -exec rm -rf {} \; /tmp --设置查找的目录; -mtime...+30 --设置修改时间为30天前; -type f --设置查找的类型为文件;其中f为文件,d则为文件夹 -name "*" --设置文件名称,可以使用通配符; -exec rm -rf --查找完毕后执行删除操作...分钟 取值范围:0-59 第二个*号表示时间中的 小时 取值范围:0-23 第三个*号表示一个月中的第几天,取值范围:1-31 第四个*号表示一年中的第几个月,取值范围:1-12 第五个*号表示一个星期中的第几天...,以星期天开始依次的取值为0~7,0、7都表示星期天 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/111506.html原文链接:https://javaforall.cn

2.4K30
  • linux根据日期时间批量删除文件(删除N天前的文件)

    一、使用find先查出来,然后执行删除1、find 部分参数说明-amin -n: 最后一次访问发生在 n分钟 之内-amin n: 最后一次访问发生在距离当前时间 n分钟 至 (n+1)分钟-amin...(n+1)分钟 之外-ctime -n: 最后一次文件状态修改发生在 n天 之内-ctime n: 最后一次文件状态修改发生在 n天 至 (n+1) 天-ctime +n: 最后一次文件状态修改发生在...(n+1)天 之外2、使用 find 命令 先找到n天之外的文件(这里假设找到 3天前的文件)在/www/wwwroot/shengsi-zhejiang/public/uploads/spot/Array...+33、将查找到的这些文件执行删除利用 -exec参数 如果查找有返回 可在exec参数后 加上需要操作的命令 查找结果用{}来代替find /www/wwwroot/shengsi-zhejiang...:希望查找的文件类型"*.jpg":表示查找扩展名为jpg的文件"*":表示查找所有类型的文件

    2K00

    Linux自动清理N天前目录文件

    Linux服务器每周会产生一次全局备份文件,大小约100G左右,需要定期清理。 工作时间网站访问大,服务器I/O高的时候删除大数据会对服务器状态产生不好的影响。于是想利用计划任务自动执行。...,可以使用find命令,如我要保留最近四周备份的文件,每次备份间隔七天: # find /bakcup/ -maxdepth 1 -type d -mtime +28 /bakcup/2014-01-06...-type d:设置查找类型为目录 -mtime +28:查找28天前的目录 -------------------------------------------------------------...在删除大量文件时比rm更具优势,具体原因请参考 《为什么rsync能够快速删除400000文件?》...提醒: 使用命令前,应先在服务器上试用查找部分的命令,如只查找出要清理的目录,则可以继续。 不排除某些系统会将./目录查找出来,一定要看清楚,防止出现意外情况。

    1.7K10

    Linux 按时间批量删除文件命令(删除N天前文件)

    需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据。....*" -exec rm -Rf {} \; /home/lifeccp/dicom/studies :准备要进行清理的任意目录 -mtime:标准语句写法 +10:查找10天前的文件,这里用数字代表天数...,+30表示查找30天前的文件 “*.*”:希望查找的数据类型,”*.jpg”表示查找扩展名为jpg的所有文件,”*”表示查找所有文件 -exec:固定写法 rm -rf:强制删除文件,包括目录  {}...\; :固定写法,一对大括号+空格+/+; 当然也可以根据文件名、根据大小,根据其他不同条件过滤删除,或者修改等,可以考虑sort等命令结合使用。...未经允许不得转载:肥猫博客 » Linux 按时间批量删除文件命令(删除N天前文件)

    8.1K30

    python 删除前3天的文件

    删除前3天的文件 2.如果目录为空,也一并删除掉 如果使用shell脚本,一条命令就搞定了。干啥还要用python? 1. 因为需要记录一些日志,使用shell不好实现 2....获取前3天时间 在time模块中,不好实现获取前3天的时间。但是datetime模块是可以的!...天 offset = datetime.timedelta(days=-3) # 获取想要的日期的时间,即前3天时间 re_date = (today + offset) # 前3天时间转换为时间戳 re_date_unix...天日期 print(re_date_unix)  # 前3天日期的时间戳格式 执行输出: 1542523307.0 开始正式比较,test.docx的文件时间是否需要删除 #!...执行输出: 当前日期 2018-11-21 前3天日期 2018-11-18 文件修改时间 2018-11-20 17:00:03 未超过3天,无需处理! 3. 空目录一并删除 怎么说呢?

    3.2K20

    du查询文件夹占用空间,自动删除超过N天的文件

    查找占用大的文件,删除掉,如日志文件 场景 收到系统磁盘报警了,需要在快速找出哪些文件占用过大,及时清理,一般都是日志占用,可以做成定时任务,超过多少天的自动清理 查找占用空间最大的文件 # 查找 /var...下最大的,排前10的文件 $ du -a /var | sort -n -r | head -n 10 删除超过N天的文件 比如:clean_expired_logs.sh # 清理 /path/log...目录超过10天的 *.log 文件 $ find /path/log -name "*.log" -type f -mtime +10 | xargs rm -rf 定时任务 # 编辑定时任务,一行代表一个定时任务...# "30 05 * * *" 代表每天的 05:30:00 分钟执行任务 $ crontab -e 30 05 * * * sh /path/clean_expired_logs.sh # 查看有哪些定时任务

    75530

    linux中删除文件的最后N行小总结

    现在,假设我们要从rumenz.txt文件中删除最后三行 ( n=3 ) 。...sed命令及其地址范围,我们可以快速删除文件中从给定行号开始到最后一行的行: sed 'GIVEN`LINE`NO, $d' input_file 例如,让我们从第5行删除直到rumenz.txt的结尾...由于我们的输入文件有十行,sed命令:sed 8,$d rumenz.txt将是解决问题的方法。 这样,问题就变成了如何计算第一个要删除的行号8 。 现在,是时候介绍wc命令了。...但是,如果我们可以颠倒输入文件中的行顺序,问题就会变成从文件中删除前 n 行。一个简单的 sed 单行sed 1,n d可以删除前n行。之后,如果我们再次反转线条,我们的问题就解决了。...如果FNR==total-n+1,则表示我们已经到达需要删除的第一行,因此我们退出。否则,我们只打印该行。在这里非零数字1``true 并触发awk的默认操作

    7.8K10

    linux每天定时备份MySQL数据库并删除五天前的备份文件

    Mysql定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。...’;’连接符,否则生成的文件名末尾字符为乱码 代码: #!...mysql_bin_dir:mysql的bin路径; dataname:数据库名; user:数据库用户名; password:用户密码; name:自定义备份文件前缀标识。...-type f 表示查找普通类型的文件,f表示普通文件。...-mtime +5 按照文件的更改时间来查找文件,+5表示文件更改时间距现在5天以前;如果是 -mmin +5 表示文件更改时间距现在5分钟以前。

    1.8K20

    Linux下查找和删除7天以前的文件

    记一次linux下清理过期日志的过程; 环境说明:删除/var/log/下7天以前的.log文件; 用到的命令:find、rm; 命令示例:find /var/log/ -mtime +7 -...name "*.log" -exec rm {} \; 说明: find :查找命令 /var/log/ :需要查找的文件路径 -mtime +7 :按文件更改时间来查找文件,-7指7天以内,+7指...7天以前 -name "*.log" :你要查找的文件名,可用通配符 -exec :将find查到的文件执行command操作,{} 和 \;之间有空格 rm {} \; :需要执行的command操作...                  #在/home下查找60分钟前改动过的文件 find /home -amin +30                  #查找最近30分钟前被存取过的文件... tmp.txt -ok   rm {} \; #查找tmp下名为tmp.txt的文件并删除它,-ok:删除前提示 find  / -amin    -10

    5.9K20

    du查询文件夹占用空间,自动删除超过N天的文件「建议收藏」

    查找占用大的文件,删除掉,如日志文件 场景 收到系统磁盘报警了,需要在快速找出哪些文件占用过大,及时清理,一般都是日志占用,可以做成定时任务,超过多少天的自动清理 查找占用空间最大的文件 # 查找 /var...下最大的,排前10的文件 $ du -a /var | sort -n -r | head -n 10 删除超过N天的文件 比如:clean_expired_logs.sh # 清理 /path/log...目录超过10天的 *.log 文件 $ find /path/log -name "*.log" -type f -mtime +10 | xargs rm -rf 定时任务 # 编辑定时任务,一行代表一个定时任务...# "30 05 * * *" 代表每天的 05:30:00 分钟执行任务 $ crontab -e 30 05 * * * sh /path/clean_expired_logs.sh # 查看有哪些定时任务

    48920

    Linux 定时任务 删除指定时间前的文件操作

    ♩ 背景 随着网站体量的不断增大,很多缓存日志造成资源你的浪费,为此,想着写一个计划任务,定期删除没必要的缓存数据 ♪ 操作指导 ①....表示当前目录 -type f: 指定查找对象为文件 -name *.log: 指定查找对象名称以.log结尾 -mtime +10: 查找10天以前的老文件 -mmin +120: 查找120...分钟(两小时)以前的老文件 -exec rm -rf {} ; :执行删除命令,这句注意,后面有个 {} ; 是必须的 ③....通过分析以上数据,判断哪个目录或者缓存、log文件占用资源大,进行后面的删除操作 ②....参考文章: 【计划任务定时删除文件(共7篇)】 【Linux 删除指定时间前的文件】 【Linux crontab 定时任务整理笔记】

    7.8K20

    java删除linux文件_Java删除文件

    大家好,又见面了,我是你们的朋友全栈君。...//将缓冲文件夹中的文件删除 String s = “D:\\txt\\inBuffer\\”+ fileInfo[0] +”\\” + fileID;//文件的绝对路径 File file = new...; } } ——————————————————————————– Java删除文件注意事项:1.路径上不能出现java认为的非法字符,如“(”,“)”等; 2.确保删除操作之前,文件不再被使用,即文件资源被释放...——————————————————————————– java删除文件与文件夹时,要删除的内容: 1.文件夹里的文件; 2.文件夹里面的子文件夹(有文件); 3.文件夹里面的子文件夹(空文件夹); —...} } // 删除指定文件夹下所有文件 // param path 文件夹完整绝对路径 public static boolean delAllFile(String path) { boolean

    19.9K20

    Linux 恢复删除的文件

    Linux 下的命令可谓繁多,但属rm最让人痛并快乐。今天,我分享下针对rm的后悔良药testdisk。...当你在 Linux 系统上删除一个文件时,它不一定(嗯,是不一定~)会永远消失,特别是当你最近才刚刚删除了它的时候。而恢复已删除文件的最佳工具之一testdisk可以帮助你拯救它。...虽然testdisk具有广泛的功能,包括恢复丢失或损坏的分区和使不能启动磁盘可以重新启动,但它也经常被用来恢复被误删的文件。...有趣的是,它不仅是一个 Linux 工具,而且还适用于 MacOS、Solaris 和 Windows。文档可在 https://www.cgsecurity.org 中找到。...安装# debianapt install testdisk# centosyum install testdisk恢复文件cd /mnt/recoverytestdisk /dev/sdb2然后,一路默认选项

    14.2K20

    linux下的删除文件命令,Linux下删除文件命令「建议收藏」

    在linux中删除文件与文件夹我们可以直接使用rm就可以删除了,彻底删除文件或文件夹我们可以使用shred命令来完成,接下来是小编为大家收集的Linux下删除文件命令,希望能帮到大家。...Linux下删除文件命令 linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。...、文件夹 需要提醒的是:使用这个rm -rf的时候一定要格外小心,linux没有回收站的 2 删除文件 de>rm -f fileNamede> 使用 rm -rf 的时候一定要格外小心,linux没有回收站的...删除指定文件之外的其他文件 一、Linux下删除文件和文件夹常用命令如下: 删除文件: rm file 删除文件夹: rm -rf dir 需要注意的是, rmdir 只能够删除 空文件夹。...的详细参数: -f, –force 更改权限允许写入(如有必要) -n, –iterations=N 重写N次,默认为3次 –random-source=FILE 从指定文件读取数据 -s, –size

    47K31
    领券