写一个shell 把一个文件夹下 超过7天的文件 然后删除
时间: 2024-05-14 22:16:47 浏览: 159
好的,我可以帮你写一个shell脚本来实现这个功能。下面是示例代码:
```
#!/bin/bash
# 指定文件夹路径
folder_path="/path/to/folder"
# 查找超过7天的文件并删除
find $folder_path -type f -mtime +7 -exec rm {} \;
```
需要替换 `folder_path` 变量为实际的文件夹路径,然后保存为文件名为 `delete_old_files.sh` 的脚本文件。然后在终端使用 `bash delete_old_files.sh` 命令来运行该脚本,即可将超过7天未修改的文件删除。
相关问题
写一个shell 判断一个文件夹下 超过7天的文件 然后删除
您好!关于您的问题,我可以给出以下shell脚本示例,可以用于删除指定文件夹中7天前的所有文件:
```shell
find /path/to/folder -mtime +7 -type f -delete
```
这个命令的含义是:查找指定目录下的文件(-type f),并删除修改时间超过7天(-mtime +7)的文件。请注意,这将彻底删除这些文件,请谨慎操作!
写一个shell 比较HDFS上,删除/opt目录下文件夹名称中包含的日期超过7天的文件夹
您好,这是一个比较复杂的问题,但是可以通过使用Shell脚本结合一些简单的命令来完成。下面是一个示例脚本,可以实现您的要求:
```
#!/bin/bash
# 设置需要删除的目录的路径
path='/opt'
# 获取当前时间
current_time=$(date +%s)
# 遍历/opt目录下的所有文件夹,并进行操作
for dir in "$path"/*/; do
# 检查当前文件夹名称中是否有日期信息
if [[ $dir =~ [0-9]{8} ]]; then
# 获取文件夹名称中的日期,并将其转换为时间戳
dir_time=$(date -d ${dir:(-8)} +%s)
# 判断当前时间与文件夹中日期的间隔是否超过7天
if (( ($current_time - $dir_time) / 86400 > 7 )); then
# 删除该文件夹及其包含的文件
rm -rf "$dir"
fi
fi
done
```
使用这个脚本,您只需要将其保存为一个可执行文件,然后在终端中运行即可。在运行时,脚本将遍历/opt目录下的所有文件夹,并检查其中是否有包含日期信息的文件夹。如果是,则将其转换为时间戳,并将当前时间与文件夹中日期的间隔进行比较。如果间隔超过了7天,则删除该文件夹和其中的文件。
阅读全文