shell脚本实现删除目录下名字是纯数字的目录,2023年5月1日之前的
时间: 2023-06-27 07:05:35 浏览: 45
可以使用以下脚本进行实现:
```shell
#!/bin/bash
dir="/path/to/directory" # 修改为目标目录的路径
before_date="2023-05-01"
for d in $dir/*; do
if [[ -d "$d" && "$d" =~ ^[0-9]+$ ]]; then
d_date=$(date -d "$(stat -c '%y' "$d")" +%F)
if [[ "$d_date" < "$before_date" ]]; then
echo "Deleting directory $d"
rm -rf "$d"
fi
fi
done
```
脚本中,首先定义了目标目录路径和指定的日期。然后,遍历目录下的所有子目录,判断是否是纯数字目录,如果是,则获取该目录的修改时间,并将其转换为日期格式。最后,判断该目录的日期是否早于指定日期,如果是,则删除该目录。
相关问题
写一个shell脚本实现每周日晚上12点定时删除/var/log/目录下后缀带数字的文件
您可以创建一个shell脚本来实现每周日晚上12点定时删除`/var/log/`目录下后缀带数字的文件。以下是一个示例脚本:
```bash
#!/bin/bash
# 获取当前日期和星期几
current_date=$(date +%Y-%m-%d)
current_day=$(date +%A)
# 检查是否为周日
if [ "$current_day" = "Sunday" ]; then
echo "当前是周日,开始删除后缀带数字的文件..."
# 进入/var/log/目录
cd /var/log/
# 查找并删除后缀带数字的文件
find . -type f -name "*[0-9]*" -delete
echo "删除完成!"
else
echo "不是周日,不执行删除操作。"
fi
```
保存脚本文件,并确保具有执行权限(使用`chmod +x script.sh`赋予执行权限)。然后,您可以将此脚本添加到cron作业中,以在每周日晚上12点自动执行。
```bash
crontab -e
```
在打开的文件中,添加以下行来调度脚本执行:
```bash
0 0 * * 0 /path/to/script.sh
```
保存并关闭文件。这将在每周日的午夜12点(0小时,0分钟)自动执行脚本。
请注意,执行此脚本将永久删除匹配条件的文件,请确保您真正需要删除这些文件,并在执行之前进行适当的备份和确认。
shell脚本实现遍历某个目录下的所有文件和目录删选出小于10T的,然后删除
可以使用 `find` 命令来查找小于 10T 的文件和目录,再使用 `rm` 命令来删除它们。
以下是一个示例脚本:
```bash
#!/bin/bash
# 遍历目录并删除小于 10T 的文件和目录
find /path/to/directory -type f -size -10T -delete
find /path/to/directory -type d -size -10T -delete
```
解释一下:
- `find /path/to/directory`:指定要遍历的目录路径。
- `-type f`:限定查找的是文件类型。
- `-size -10T`:查找小于 10T 的文件或目录。
- `-delete`:删除匹配的文件或目录。
注意:
- 请谨慎使用此命令,因为它将永久删除文件和目录!
- 如果您想先查看匹配的文件或目录,请删除 `-delete` 选项,然后使用 `ls` 命令来查看。