📜  脚本删除文件早于 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:41:23.344000             🧑  作者: Mango

脚本删除文件早于 - Shell-Bash

Shell-Bash 是一种脚本语言,可以用于编写脚本文件来自动化执行任务。其中包含了删除文件的功能,本文将介绍如何编写Shell-Bash脚本删除文件早于某个日期的文件。

实现步骤
1. 确认要删除的文件目录

要删除的文件一般都在某个目录下,首先需要确认要删除的目录,并使用cd命令进入该目录。例如:

cd /path/to/files
2. 使用find命令查找早于某个日期的文件

find命令可以用于查找符合指定条件的文件,并将结果输出到标准输出。例如,要查找早于2021年8月1日的文件,可以使用以下命令:

find . -type f -mtime +30

其中:

  • .表示要查找的目录为当前目录。
  • -type f表示只查找文件,不包括目录。
  • -mtime +30表示查找最后修改时间早于30天前的文件。
3. 结合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变量来指定删除的目录。