我想从当前目录中递归删除所有以 .orig 结尾的文件。
这会奏效吗?
ls -R | grep ".orig$" | rm
grep 的结果是否作为参数隐式传递给 rm ?
怎么样:
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
不,他们不是。但这就是目的xargs
:
ls -R | grep ".orig$" | xargs rm -i
会做你想做的。-i
不是必需的,但在第一次运行时使用它是个好主意。(它会提示您删除文件。如果您确信答案始终是肯定的,请中止并在没有 . 的情况下重新运行-i
。)