编写一个shell脚本,可以自动删除创建时间超过七天的目录,这些目录里面可能会有文件 ,如果目录里有文件 的话也直接删除,不需要人工确认
时间: 2023-01-30 08:49:51 浏览: 317
自动删除超出规定天数前的文件
首先,我们需要使用 `find` 命令来查找创建时间超过七天的目录。我们可以使用 `-mtime` 参数来实现这一目的,其中 `+7` 表示 "超过 7 天"。我们还可以使用 `-type` 参数限制只查找目录。例如,以下命令可以查找当前目录下创建时间超过七天的目录:
```bash
find . -type d -mtime +7
```
接下来,我们需要将输出结果传递给 `rm -r` 命令,以便将这些目录及其中的文件删除。我们可以使用 `xargs` 命令来实现这一目的。例如,以下命令可以将创建时间超过七天的目录及其中的文件删除:
```bash
find . -type d -mtime +7 | xargs rm -r
```
最后,我们可以将以上命令放入一个 shell 脚本中,并使用 `crontab` 命令设置定期执行。例如,以下是一个完整的 shell 脚本,它每天凌晨 1 点执行:
```bash
#!/bin/bash
# 删除创建时间超过七天的目录及其中的文件
find . -type d -mtime +7 | xargs rm -r
```
我们可以将该脚本保存为 `cleanup.sh`,并使用以下命令将其添加到定时任务列表中:
```bash
crontab -e
```
在打开的文件中添加一行,如下所示:
```
0 1 * * * /path/
阅读全文