【发布时间】:2014-08-05 07:37:27
【问题描述】:
我有一个文件和目录名称列表:
foo.js FOOBAR bar.json fubar/ .foo/ .baz
有没有办法将它们传递给find、grep 或其他东西并用一个命令删除所有内容?
【问题讨论】:
标签: bash shell unix command-line command-line-interface
我有一个文件和目录名称列表:
foo.js FOOBAR bar.json fubar/ .foo/ .baz
有没有办法将它们传递给find、grep 或其他东西并用一个命令删除所有内容?
【问题讨论】:
标签: bash shell unix command-line command-line-interface
为什么不直接使用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 --
【讨论】:
你可以简单地使用:
rm -rf foo.js FOOBAR bar.json fubar/ .foo/ .baz.
-r 选项将递归删除这些文件,-f 选项将强制删除这些文件。
如果所有文件都在同一个文件夹中,那么rm -rf * 将完成这项工作!
【讨论】: