删除文件/目录名称列表

时间:2014-08-05 07:37:27

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

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

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

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

2 个答案:

答案 0 :(得分:2)

为什么不使用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 --

答案 1 :(得分:1)

您可以简单地使用:

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

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

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