【问题标题】:Linux Glob Pattern to remove all files containing a '?'?Linux Glob Pattern 删除所有包含“?”的文件?
【发布时间】:2014-06-11 14:15:52
【问题描述】:

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

wgeted 了一个网站,并下载了index.html?p=46 形式的文件。为什么会这样。

我试过了:

rm -R *?* 

失败:删除所有常规文件

rm -R *\?*

同样失败:No such file of directory

【问题讨论】:

    标签: linux glob


    【解决方案1】:

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

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

    至于为什么会这样,你 wget 的网站有指向 index.html 的链接,传递了这些参数,你(大概)告诉 wget 镜像它。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2010-10-11
        • 1970-01-01
        • 1970-01-01
        • 2011-04-26
        • 2011-05-30
        • 1970-01-01
        • 2011-05-05
        • 2020-07-27
        • 2013-08-19
        相关资源
        最近更新 更多