📅  最后修改于: 2023-12-03 15:41:23.344000             🧑  作者: Mango
Shell-Bash 是一种脚本语言,可以用于编写脚本文件来自动化执行任务。其中包含了删除文件的功能,本文将介绍如何编写Shell-Bash脚本删除文件早于某个日期的文件。
要删除的文件一般都在某个目录下,首先需要确认要删除的目录,并使用cd
命令进入该目录。例如:
cd /path/to/files
find
命令查找早于某个日期的文件find
命令可以用于查找符合指定条件的文件,并将结果输出到标准输出。例如,要查找早于2021年8月1日的文件,可以使用以下命令:
find . -type f -mtime +30
其中:
.
表示要查找的目录为当前目录。-type f
表示只查找文件,不包括目录。-mtime +30
表示查找最后修改时间早于30天前的文件。rm
命令删除文件rm
命令用于删除文件,可以将find
命令的结果作为参数传递给rm
命令,实现自动删除早于某个日期的文件。例如:
find . -type f -mtime +30 -exec rm {} \;
其中:
-exec rm {} \;
表示将find
命令的每一个结果作为参数传递给rm
命令,并删除该文件。#!/bin/bash
# 定义要删除的目录
DIR=/path/to/files
# 获取当前日期并计算出30天前的日期
NOW=$(date +%s)
BEFORE=$(date -d '30 days ago' +%s)
# 查找早于30天前的文件并删除
cd $DIR
find . -type f -mtime +30 -exec rm {} \;
# 输出删除信息
echo "Deleted files before $(date -d '30 days ago' +'%Y-%m-%d')"
上述脚本实现了自动删除早于30天前的文件,可以通过修改DIR
变量来指定删除的目录。