You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

群晖NAS定时任务:递归删旧文件并保留顶层指定TXT文件

问题解答

原脚本是否会递归保留所有txt文件?

是的,你的脚本确实会递归保留整个目录树中所有的*.txt文件。因为find /volume1/TempShare/ -not -name "*.txt" -mtime +7 -delete的逻辑是:遍历目标目录下所有层级的内容,只要文件名不是*.txt且修改时间超过7天,就执行删除。反过来,所有层级(包括子目录)的*.txt文件都会被排除在删除操作之外,完全不符合你“仅保留顶层目录txt文件”的需求。

如何修改脚本以实现需求?

你需要拆分逻辑,分别处理顶层目录和子目录的内容:

#!/bin/bash
# 处理顶层目录:删除非*.txt且超过7天的文件/目录
find /volume1/TempShare/ -maxdepth 1 -not -name "*.txt" -mtime +7 -delete
# 处理子目录及以下:递归删除所有超过7天的内容(含子目录中的txt)
find /volume1/TempShare/ -mindepth 2 -mtime +7 -delete

逻辑说明:

  • -maxdepth 1:限制仅处理/volume1/TempShare/下的直接子项(即顶层内容),排除掉所有*.txt文件后,删除剩余超过7天的内容;
  • -mindepth 2:仅处理深度≥2的内容(也就是顶层目录下的子目录及其内部所有文件),不管文件类型,只要修改时间超过7天就删除,这样子目录中的*.txt也会被清理。

关于群晖NAS中find工具的版本与文档

群晖DSM系统的find工具通常基于BusyBox(精简版)或GNU findutils(完整版),取决于你的NAS机型和DSM版本:

  1. 查看版本:通过SSH登录NAS后,执行命令 find --version 即可查看具体版本信息;
  2. 查看帮助:
    • 如果是BusyBox版本,执行 find --help 可以查看内置的精简帮助文档;
    • 如果是GNU版本,执行 man find 可以查看完整的手册页;
  3. 补充说明:部分机型默认预装的是BusyBox版本,若需要完整的GNU工具集及文档,可以通过群晖的Package Center安装「GNU Core Utilities」套件。

内容的提问来源于stack exchange,提问作者Ben Edwards

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 00:15:53