Linux系统 写一个脚本 查询所有六个月之前的文件夹并压缩 压缩完成后把压缩文件移至指定的文件夹下
时间: 2023-02-11 22:03:30 浏览: 169
可以使用以下脚本实现该功能:
```bash
#!/bin/bash
# 获取当前时间的六个月之前的时间戳
time_six_months_ago=$(date -d "-6 months" +%s)
# 查询所有六个月之前的文件夹并压缩
find /path/to/folders -type d -mtime +182 -exec tar -zcvf {}.tar.gz {} \;
# 移动所有压缩文件至指定文件夹下
find /path/to/folders -type f -name "*.tar.gz" -exec mv {} /path/to/destination/folder \;
```
上面这个脚本中,先使用 `date` 命令获取当前时间的六个月之前的时间戳, 然后使用 `find` 命令查询所有六个月之前的文件夹(-type d)并且使用 -mtime +182 参数筛选出修改时间在六个月之前的文件夹,最后用 -exec 参数调用 tar 命令对这些文件夹进行压缩,输出压缩文件为文件夹名.tar.gz。最后再使用 find 命令找到所有压缩文件(-name "*.tar.gz")并使用 -exec 参数调用 mv 命令将这些文件移动到指定的文件夹下
注意: 上面脚本中的/path/to/folders 和 /path/to/destination/folder 需要替换为自己需要查询压缩的文件夹和目标文件夹的绝对路径.
阅读全文