Linux Glob Pattern删除所有包含'?'?的文件

时间:2014-06-11 14:15:53

标签: linux glob

我想进入一个目录并递归删除包含?的所有文件名。

wget编辑了一个网站,并下载了index.html?p=46格式的文件。标记为什么会这样。

我试过了:

rm -R *?* 

失败:删除所有常规文件

rm -R *\?*

也失败了:No such file of directory

2 个答案:

答案 0 :(得分:2)

试试这个:find . -iname '*\?*' -exec rm {} \;

$ ls
xxy  x?y

$find . -iname '*\?*'
./x?y
$ find . -iname '*\?*' -exec rm {} \;
$ ls
xxy

至于为什么会这样,你所拥有的网站有链接到index.html传递这些参数,你(大概)告诉wget反映它。

答案 1 :(得分:0)

?映射到单个字符。你需要逃脱它:

$ touch a a?a
$ ls *?*
a  a?a
$ ls *\?*
a?a