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

如何删除不符合Radarr「名称(YYYY)」格式的电影目录及内容?

解决Radarr电影目录格式清理问题

正确的目标目录查找命令

你之前的正则未匹配格式要求的空格与括号,且括号在正则中属于特殊字符必须转义。正确的find命令如下:

find /path/to/movies -regextype posix-egrep -type d -not -iregex '.*/[^/]+ \([0-9]{4}\)$'

命令细节解释:

  • /path/to/movies:替换为你的电影根目录,不要用相对路径.(cron执行时相对路径可能失效)
  • -regextype posix-egrep:启用扩展正则语法支持
  • -type d:仅筛选目录类型
  • -not -iregex:反向匹配符合规范的目录,即找出不符合格式的目标
  • 正则部分.*/[^/]+ \([0-9]{4}\)$:
    • .*/:匹配路径中最后一个目录前的所有前缀内容
    • [^/]+:匹配目录名的主体部分(任意非斜杠字符)
    • \(:匹配空格加左括号(左括号转义避免被正则解析为分组符号)
    • [0-9]{4}:匹配四位数字年份
    • \)$:匹配右括号并锚定到路径结尾,确保整个目录名完全符合「名称(四位年份)」格式

转为cron可执行的清理脚本

重要提醒:先单独运行上面的查找命令,确认返回结果都是你要删除的目录后,再添加删除操作。确认无误后,最终命令如下:

find /path/to/movies -regextype posix-egrep -type d -not -iregex '.*/[^/]+ \([0-9]{4}\)$' -exec rm -rf {} +

添加到cron的步骤:

  1. 打开crontab编辑界面:crontab -e
  2. 添加定时规则(示例为每天凌晨2点执行):
    0 2 * * * /bin/bash -c 'find /path/to/movies -regextype posix-egrep -type d -not -iregex '\''.*/[^/]+ \([0-9]{4}\)$'\'' -exec rm -rf {} +'
    
    注:cron中的引号需要用\'转义,避免语法解析错误。

问题根源说明

  • 你之前的命令未匹配格式要求的空格与括号,且未锚定路径结尾,会误判大量不符合要求的目录(比如包含四位数字但不是年份后缀的目录)
  • 括号是正则的特殊字符,必须用\转义,否则会被当成分组逻辑符号,导致正则匹配完全偏离预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:23:23