高危文件与目录操作

风险来自目标解析

rm -rf "$TARGET_DIR"
rm -rf *
find /some/path -delete
chown -R app:app /some/path

变量为空、当前目录错误、通配符展开或路径拼写错误,都可能扩大目标。不要对 /、用户主目录、工作区根目录或未解析变量执行递归破坏操作。

删除前六步

printf '%s\n' "$TARGET_DIR"
realpath -- "$TARGET_DIR"
find "$TARGET_DIR" -maxdepth 1 -type f -print
  1. 确认主机和用户。
  2. 将目标解析为绝对路径。
  3. 明确验证目标位于允许根目录内。
  4. find/ls 预览准确集合。
  5. 检查文件是否仍被进程使用。
  6. 再执行最小范围操作,并记录结果。

-- 表示后续内容不是命令选项,可处理以 - 开头的文件名:

rm -- -strange-name.txt

按时间清理临时文件

先预览:

find /srv/nloop/tmp -xdev -type f -mmin +1440 -print

确认目录和结果后才考虑 -deletemtime 表示内容修改时间,不等于业务“创建时间”;正在处理但长时间未修改的文件也可能被误删。更稳妥的设计是每任务独立目录、完成标记、运行任务锁,以及由同一清理程序排除活跃任务。

mvcp 也会破坏数据

覆盖同名文件、跨文件系统移动中断、权限/所有者变化都会造成问题。重要发布应使用新版本目录,验证后原子切换软链接,而不是覆盖正在运行的目录。