我正在尝试删除 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
。