写个shell脚本用来定时删除D盘指定日期之后文件
时间: 2023-03-14 17:51:33 浏览: 57
好的,首先,您可以使用 `find` 命令来查找 D 盘中修改时间早于指定日期的文件。例如,如果要查找 D 盘中修改时间早于 2020 年 1 月 1 日的文件,可以使用以下命令:
```bash
find /d -type f -mtime +365
```
其中,`/d` 表示 D 盘的根目录,`-type f` 表示只查找文件,`-mtime +365` 表示只查找修改时间早于 365 天(也就是 2020 年 1 月 1 日)的文件。
接下来,您可以将 `find` 命令的输出传递给 `xargs` 命令,并使用 `rm` 命令来删除这些文件。例如:
```bash
find /d -type f -mtime +365 | xargs rm
```
最后,您可以使用 `cron` 服务来定时执行这个脚本。例如,如果要每天凌晨 1 点执行这个脚本,您可以在终端中输入以下命令:
```bash
crontab -e
```
这会打开编辑器,您可以在文件末尾添加一行:
```
0 1 * * * /path/to/script.sh
```
保存并退出后,`cron` 服务就会每天凌晨 1 点执行 `/path/to/script.sh` 这个脚本。
总的来说,您的脚本内容大概是这样的:
```bash
#!/bin/bash
find /d -type f -mtime +365 | xargs rm
```
希望这对您有帮助!
相关问题
写一个定时删除指定目录下当期日期前一天的shell脚本
可以使用以下shell脚本来定时删除指定目录下当期日期前一天的文件:
```bash
#!/bin/bash
# 指定目录路径
dir_path="/path/to/directory"
# 获取当期日期前一天的日期
delete_date=$(date -d "yesterday" +%Y-%m-%d)
# 删除指定目录下当期日期前一天的文件
find $dir_path -type f -name "*$delete_date*" -delete
```
将上述脚本保存为一个可执行文件,比如 `delete_old_files.sh`,然后设置定时任务来执行该脚本即可。
例如,每天凌晨2点执行该脚本,可以使用以下命令来设置定时任务:
```
0 2 * * * /path/to/delete_old_files.sh
```
这个定时任务的意思是,在每天的凌晨2点执行 `/path/to/delete_old_files.sh` 脚本。
帮我写一个shell脚本 功能是每天定时删除文件生成日期过了当天的shell脚本
好的,以下是一个每天定时删除文件生成日期过了当天的shell脚本示例:
```bash
#!/bin/bash
# 设置要删除的文件路径和文件名前缀
file_path="/path/to/files"
file_prefix="file_"
# 获取当前日期
current_date=$(date +%Y-%m-%d)
# 遍历文件列表,删除生成日期比当前日期早的文件
for file in ${file_path}/${file_prefix}*
do
# 获取文件生成日期
create_date=$(date +%Y-%m-%d -r $file)
# 比较生成日期和当前日期
if [[ $create_date < $current_date ]]; then
# 删除文件
rm -f $file
fi
done
echo "删除过期文件完成!"
```
将该脚本保存为一个文件(如`delete_files.sh`),然后使用`crontab`等工具设置每天定时执行该脚本即可。
注意:在使用该脚本之前,请先测试一下是否可以正确地删除过期文件。另外,修改`file_path`和`file_prefix`变量为您实际的文件路径和文件名前缀。