我想进入一个目录并递归删除包含?
的所有文件名。
我wget
编辑了一个网站,并下载了index.html?p=46
格式的文件。标记为什么会这样。
我试过了:
rm -R *?*
失败:删除所有常规文件
rm -R *\?*
也失败了:No such file of directory
答案 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