在每天21点到09点之间,每隔20分钟显示/etc/下的文件,同时,将其中的文件夹名称及个数输出到个人工作路径的plan.d文件中,其他文件名及个数输出到个人工作路径的plan.f文件中
时间: 2024-03-11 20:49:30 浏览: 68
好的,我明白了你的要求。为了满足你的需求,我可以帮你编写一个Shell脚本,并使用crontab定时执行。脚本内容如下:
```shell
#!/bin/bash
# 获取当前时间
now=$(date +"%H:%M")
# 判断当前时间是否在指定时间范围内
if [[ "$now" > "21:00" || "$now" < "09:00" ]]; then
# 获取/etc目录下的所有文件和文件夹
files=$(ls /etc)
# 统计文件夹数量并输出到plan.d文件中
folders=$(echo "$files" | grep -c '/$')
echo "Folder count: $folders" > ~/plan.d
# 统计文件数量并输出到plan.f文件中
files=$(echo "$files" | grep -v '/$')
file_count=$(echo "$files" | wc -l)
echo "File count: $file_count" > ~/plan.f
fi
```
这个脚本会在每天的21点到次日的9点之间每隔20分钟执行一次,并将/etc目录下的文件夹数量输出到plan.d文件中,将其他文件数量输出到plan.f文件中。你只需要将脚本保存为一个文件,比如说`/home/user/script.sh`,然后在终端中执行`crontab -e`命令,编辑定时任务,加入以下内容:
```
# m h dom mon dow command
*/20 21-23,0-8 * * * /bin/bash /home/user/script.sh
```
这个任务表示,在每天的21点到次日的9点之间,每隔20分钟执行一次`/home/user/script.sh`脚本。注意将`/home/user/script.sh`替换成你实际保存脚本的路径。
这样,你就可以实现每天定时统计/etc目录下的文件夹和文件数量,并将结果输出到指定文件中。
阅读全文