${max_days}不需要这个了吗?
时间: 2023-08-01 15:12:01 浏览: 26
对的,当使用 `-mmin` 选项时,就不需要再使用 `${max_days}` 这个变量了,因为 `-mmin` 是以分钟为单位来指定文件的修改时间阈值的,而 `${max_days}` 是以天为单位。所以,你可以将命令修改为:
```
find "${log_dir}" -type f -name "*.log" -mmin +7 -delete
```
这个命令将查找 `${log_dir}` 目录下所有名字以 `.log` 结尾的文件,并删除其中修改时间超过 7 分钟的文件。请注意,这个命令将查找所有子目录中的 `.log` 文件并删除,如果你只想查找当前目录下的 `.log` 文件并删除,请添加 `-maxdepth 1` 参数以限制查找的深度。
相关问题
find "${log_dir}" -type f -name "*.log" -mtime +${max_days} -delete
这是一个 shell 命令,它的作用是删除指定目录下的一定时间范围内的日志文件。其中,`${log_dir}` 是一个变量,它的值会在命令执行时被替换为实际的目录路径;`${max_days}` 是一个变量,它的值表示最大的保留天数。
命令的具体含义如下:
1. `find "${log_dir}"`:在 `${log_dir}` 目录下查找文件。
2. `-type f`:只查找普通文件,不包括目录和设备文件等。
3. `-name "*.log"`:文件名匹配 `*.log` 的文件。
4. `-mtime +${max_days}`:最后修改时间在 `${max_days}` 天之前的文件。
5. `-delete`:删除符合条件的文件。
执行该命令会删除 `${log_dir}` 目录下最后修改时间在 `${max_days}` 天之前的所有 `.log` 后缀的日志文件。
find "${log_dir}" -type f -name "*.log" -mtime +${max_days} -delete所以是可以删除-name选项吗?
不是的,`-name "*.log"` 选项是用来匹配文件名的,它表示只匹配文件名以 `.log` 结尾的文件。这个选项是非常必要的,因为在 `${log_dir}` 目录下可能会有其他后缀名的文件,我们只想删除 `.log` 后缀的日志文件。
`-mtime +${max_days}` 选项是用来匹配文件修改时间的,它表示只匹配最后修改时间在 `${max_days}` 天前的文件。这个选项也是必要的,因为我们只想删除七天前的日志文件,而不是所有日志文件。
因此,如果你删除了 `-name` 选项,脚本可能会误删一些其他后缀名的文件,而如果你删除了 `-mtime` 选项,脚本可能会删除所有日志文件,而不仅仅是七天前的。