shell脚本删除180天前的文件和目录,并循环打印删除的文件和目录
时间: 2024-09-13 07:04:11 浏览: 107
要使用shell脚本删除180天前的文件和目录,并循环打印出被删除的文件和目录,你可以使用`find`命令结合`-mtime`选项来查找这些文件和目录,然后使用`rm`命令进行删除。下面是一个基本的示例脚本:
```bash
#!/bin/bash
# 设置要删除文件的天数
DAYS=180
# 找到所有180天前的文件,并打印它们的名字,然后删除
find /path/to/search -type f -mtime +$DAYS -exec echo "Deleting file: {}" \; -exec rm -f {} \;
# 找到所有180天前的目录,并打印它们的名字,然后删除
find /path/to/search -type d -mtime +$DAYS -exec echo "Deleting directory: {}" \; -exec rm -rf {} \;
```
在上面的脚本中,`/path/to/search`是你想要搜索的起始路径。`-type f`和`-type d`分别指定了查找文件和目录。`-mtime +$DAYS`选项表示查找修改时间超过`DAYS`指定的天数的文件。`-exec echo "Deleting file: {}"`用于打印出将要删除的文件或目录的路径。`-exec rm -f {}`用于删除文件,`-exec rm -rf {}`用于删除目录。
请注意,在实际使用这个脚本之前,你应该先运行不包含`rm`命令的`find`命令来确认它正确地找到了你想要删除的文件和目录。
此外,非常重要的一点是,`rm -rf`命令会递归地强制删除目录及其所有内容,这可能会导致数据丢失。因此,在使用这个命令删除目录之前,请确保你确实想要删除这些目录,并且最好先进行备份。
阅读全文