删除与特定字符串不匹配的文件夹和内容

问题描述 投票:0回答:1

我正在使用 Radarr,它将我的电影目录重命名为以下格式:

Argo (2012)
Arrival (2016)
A Scanner Darkly (2006)

所以每个目录都以

' (????)'
结尾,但我不确定如何创建一个命令来删除所有与此格式不匹配的文件夹及其内容。我想在带有 cron 的脚本中使用该命令偶尔清理我的电影目录。

在使用

-delete
之前我尝试先找到文件,但我没有返回我所期望的内容。

`找到。 -regextype posix-egrep -type d -not -iregex '.*/[0-9]{4}'

我想我可能需要包含

(
)
字符,但我在添加这些字符时也遇到了问题。任何帮助将不胜感激。

find
1个回答
0
投票

您使用的正则表达式无法完全捕获您正在寻找的模式。另外,您需要转义括号,因为它们在正则表达式中具有特殊含义。针对您的情况执行以下操作:

find /path/to/movies -type d ! -regex '.*/[^/]*(\s\([0-9]{4}\))$' -exec rm -r {} +

这将删除所有未格式化为“电影标题(年份)”的文件夹及其内容。

© www.soinside.com 2019 - 2024. All rights reserved.