【问题标题】:Delete a list of file/directory names删除文件/目录名称列表
【发布时间】:2014-08-05 07:37:27
【问题描述】:

我有一个文件和目录名称列表:

foo.js FOOBAR bar.json fubar/ .foo/ .baz

有没有办法将它们传递给findgrep 或其他东西并用一个命令删除所有内容?

【问题讨论】:

    标签: bash shell unix command-line command-line-interface


    【解决方案1】:

    为什么不直接使用rm

    rm -fr -- foo.js FOOBAR bar.json fubar/ .foo/ .baz
    
    • 如果您的文件参数之一以 - 开头,-- 是可选的。

    如果你想递归地删除具有这些文件名的文件,你可以这样做:

    find path \( -name foo.js -o -name FOOBAR -o -name bar.json -o -name fubar -o -name .foo -o -name .baz \) -exec rm -fr -- '{}' \;
    

    xargs类似:

    find path \( -name foo.js -o -name FOOBAR -o -name bar.json -o -name fubar -o -name .foo -o -name .baz \) -print0 | xargs -0 rm -fr --
    

    【讨论】:

      【解决方案2】:

      你可以简单地使用:

      rm -rf foo.js FOOBAR bar.json fubar/ .foo/ .baz.

      -r 选项将递归删除这些文件,-f 选项将强制删除这些文件。

      如果所有文件都在同一个文件夹中,那么rm -rf * 将完成这项工作!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-01-21
        • 1970-01-01
        • 2011-10-18
        • 1970-01-01
        • 1970-01-01
        • 2017-05-20
        相关资源
        最近更新 更多