shell 查找指定路径下30天前的文件夹
时间: 2023-08-02 15:07:50 浏览: 184
可以使用find命令来查找指定路径下30天前的文件夹,命令如下:
```
find /path/to/directory -type d -mtime +30
```
其中,`/path/to/directory` 是要查找的目录路径,`-type d` 表示只查找文件夹,`-mtime +30` 表示查找修改时间在30天前的文件夹。
相关问题
写一份在共享文件夹路径为'\\192.168.21.254\18-视频监控\B2C\20230322'中,自动删除创建时间超过30天的shell脚本
可以使用bash编写一个自动删除共享文件夹中创建时间超过30天的文件的脚本。具体步骤如下:
1. 使用find命令查找共享文件夹中创建时间超过30天的文件,同时使用-type参数限定只查找文件。
2. 使用-mtime参数指定查找条件为创建时间超过30天的文件。
3. 使用-exec参数指定执行删除操作。
下面是示例代码:
```bash
#!/bin/bash
# 定义共享文件夹路径
share_folder="//192.168.21.254/18-视频监控/B2C/20230322"
# 查找共享文件夹中创建时间超过30天的文件,并执行删除操作
find "$share_folder" -type f -mtime +30 -exec rm -rf {} \;
```
注意:在实际使用中,需要根据具体情况进行调整,比如共享文件夹的路径、文件的筛选条件等。同时,为了避免误删重要文件,建议在测试通过后再在生产环境中运行。
删除之前数据只保留30天的数据
在Linux环境下,如果你想仅保留最近30天的数据并删除旧的,可以继续使用shell脚本结合cron job来实现。下面是一个简化版的脚本示例,假设我们正在处理的是名为`old_files`的文件夹:
```bash
#!/bin/bash
# 获取当前日期
current_date=$(date +%Y-%m-%d)
# 计算30天前的日期
threshold_date=$(date -d "${current_date} -30 days" +%Y-%m-%d)
# 查找并删除超过30天的文件
find /path/to/old_files -type f -name "*.txt" -mtime +30 -delete
echo "Old files older than ${threshold_date} have been deleted."
exit 0
```
在这个脚本中,`find`命令会在`/path/to/old_files`目录下查找所有`.txt`文件,如果它们的修改时间(mtime)超过30天,则会被删除。你可以根据实际情况替换文件类型、目录路径和文件名模式。
为了定期运行此脚本,将其保存为`clean_old_files.sh`,给它执行权限,然后在crontab中添加一项类似这样的任务:
```bash
0 0 * * * /usr/bin/env bash /path/to/clean_old_files.sh
```
这表示每天凌晨0点执行`clean_old_files.sh`脚本。再次强调,你需要将`/path/to`替换为实际存储脚本和旧文件的路径。
阅读全文