1

我想从当前目录中递归删除所有以 .orig 结尾的文件。

这会奏效吗?

ls -R | grep ".orig$" | rm

grep 的结果是否作为参数隐式传递给 rm ?

4

2 回答 2

4

怎么样:

find ./ -type f -name "*.orig" -exec rm "{}" \;

echo似乎对我有用,但用而不是先测试它可能是个好主意rm;)

ls -R不会将五个完全正确的格式输出直接传递给 rm(通过 grep),因为它为每个目录分别列出了文件,例如:

.:
local1.orig local

./dir:
nested1.orig nested2.orig

如果你想使用 grep 做类似的事情,你需要xargs像这样使用:

grep ".orig$" | xargs rm
于 2013-06-04T09:49:51.377 回答
1

不,他们不是。但这就是目的xargs

ls -R | grep ".orig$" | xargs rm -i

会做你想做的。-i不是必需的,但在第一次运行时使用它是个好主意。(它会提示您删除文件。如果您确信答案始终是肯定的,请中止并在没有 . 的情况下重新运行-i。)

于 2013-06-04T09:52:47.290 回答