文件夹名称中带有方括号/圆括号的 Shell 脚本

文件夹名称中带有方括号/圆括号的 Shell 脚本

我有一个音乐库,正在尝试从备份中恢复。

原始源库位于 QNAP NAS 上,我将其复制到 CentOS 系统,没有任何问题。

现在,我尝试将文件复制回来,QNAP NAS 生成了一大堆隐藏目录(称为“.@__thumbs”)。

我使用过find -name .@__thumbs > results.sh并且想在将数据恢复到 NAS 时删除这些隐藏文件夹。

我遇到的问题是,音乐专辑的文件夹有时会带有括号或方括号来表示年份,因此当我尝试删除时,例如:rm -rf "some album (2009)/.@__thumbs"rm -rf "some other album [2010]/.@__thumbs",bash 会给我一个错误:

./results.sh: command substitution: line 2: unexpected EOF while looking for matching `''
./results.sh: command substitution: line 3: syntax error: unexpected end of file
./results.sh: command substitution: line 19: syntax error near unexpected token `('

那么我该如何在 bash shell 脚本环境中解决这个问题呢?

(我不是程序员也不是开发人员,所以请原谅我的愚蠢问题。)

非常感谢您的帮助。

谢谢。

编辑

@Kusalananda 既然你关闭了这个,我必须编辑我原来的问题。

  1. 回复:“考虑将生成这些错误的实际命令添加到问题中。没有它们,您的问题就不清楚,我们只能推测。”

我做到了。

再次阅读我原来的问题,最值得注意的是:“我遇到的问题是音乐专辑的文件夹有时会有括号或方括号表示年份,所以当我尝试删除,例如:rm -rf "some album (2009)/.@__thumbs"rm -rf "some other album [2010]/.@__thumbs", bash 给我一个错误:”

  1. 回复:重复的问题我尝试专门针对包含“确切文件名”的帖子进行搜索,并且没有任何问题(也没有答案)对于我在这里尝试做的事情来说是显而易见的。

人们之所以会提出重复的问题,是因为他们知道什么知道。所以;我什至不知道要以你问他们的方式问这个问题,因此;不会输入这些搜索词。

我通读了您提供的链接中的两个重复问题,并在通读了整个问题后两个都线程,我仍然无法拼凑出 @cas 提供的答案。

例如,我现在需要使用非 GNU 解决方案(讽刺的是,尽管我在 CentOS 中使用它),因为它现在抱怨该find -name @.thumb -delete命令 - 它说这些目录不是空的,所以,我发现自己需要使用非 GNU 解决方案来解决这个问题。

再说一遍,即使在阅读了两个链接的重复问题之后,我也会不是以 @cas 能够为我的问题提供答案的相同方式将其拼凑在一起。

开发商和常规的系统管理员可能能够将其拼凑在一起。对于其他人来说,我不一定会这么认为。 (或者也许我只是愚蠢因为无法将其拼凑起来并弄清楚。)

相关内容