linux删除指定时间前的文件

本文介绍了如何在Shell中使用find命令配合mtime或mmin选项删除指定时间前的文件,提供了查找、统计、删除和配置定时执行的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、删除命令介绍

在Shell中删除指定时间前的文件,可以使用find命令结合-mtime-mmin选项来查找并删除文件。

以下是一个示例:

# 删除30天之前的文件
find /path/to/directory -type f -mtime +30 -exec rm {} \;

# 删除60分钟之前的文件
find /path/to/directory -type f -mmin +60 -exec rm {} \;

在上面的命令中:

  • /path/to/directory 是要搜索的目录路径。
  • -mtime +30 表示查找修改时间在30天之前的文件。类似地,-mmin +60 表示查找修改时间在60分钟之前的文件。
  • -type f 表示只查找普通文件,而不包括目录或其他特殊文件。f为文件,d为文件夹。
  • -exec rm {} \;find命令中用来执行特定操作的部分。在这里,-exec参数表示执行后面指定的命令,rm是要执行的命令,{}代表find命令找到的文件名,在每次执行时会被替换为实际的文件名,\;表示命令的结束。所以,-exec rm {} \; 就是告诉find命令对于每一个找到的文件执行rm命令来删除它们。

请确保在运行这些命令之前仔细检查路径和条件,以免意外删除重要文件。

2、使用示例

1、确认路径和文件

# 查找指定名称目录下,指定名称的文件,统计数量
find /usr/share/nginx/html/ark* -mtime +2 -type f -name "*.html" |  wc -l
# 查找指定名称目录下,指定名称的文件,查看其路径名称,去重后展示,确认目录是否正确
find /usr/share/nginx/html/ark* -mtime +2 -type f -name "*.html" | xargs dirname | sort | uniq

2、执行删除

# 查找指定名称目录下,指定名称的文件,进行删除
find /usr/share/nginx/html/ark* -mtime +2 -type f -name "*.html" -exec rm {} \;

3、配置定时执行

#1、将删除命令写入rotate_clean_html.sh
#2、为脚本赋可执行权限
chmod +x /usr/share/nginx/html/rotate_clean_html.sh
#3、并在crontab -e 命令中增加如下行
30 9 * * * /usr/share/nginx/html/rotate_clean_html.sh > /dev/null 2>&1

2024.2.20 v1.0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值