rm 命令:删除文件名包含括号的文件

rm 命令:删除文件名包含括号的文件

我正在尝试删除 Windows 7 目录中文件名包含括号的所有文件;(并且)

使用MinGW:

rm *(*)*

我收到一个错误:

sh: syntax error near unexpected token '('

我猜测这是因为rm命令将括号视为某种特殊输入。我该怎么做呢?

答案1

您可以通过在前缀中添加反斜杠来“转义”特定的元字符。

$ touch 'aaa(bbb)ccc'
$ rm *\(*\)*
$ ls
$

答案2

您可以执行以下操作:

find . -type f -name "*(*)*" -delete -maxdepth 1

为了进行测试,我将首先使用该-print参数:

find . -type f -name "*(*)*" -print -maxdepth 1

如果你想在所有子目录中执行此操作,你可以省略-maxdepth 1

如果-delete不起作用你可以尝试:

find . -type f -name "*(*)*" -exec rm -rf {} \;

编辑:包括-type f仅对文件(而不是目录)执行此操作,与中相同rm

相关内容