本文介绍了为什么rm无法按我期望的那样工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我只想做一件简单的事情。我在目录中得到以下文件:
I just want to do a simple thing. I got the following files in a directory:
AppInterface.h baa PEMsg.h PluginInterface.h
然后我发出命令:
ls | grep -v ".h" | rm -rf
令我沮丧的是, baa
不会被删除。但是,这是
Much to my dismay, baa
does not get deleted. But, this:
ls | grep -v ".h"
给出 baa
如我所料。所以我想问题在于 rm
如何获取输入,但我不知道为什么。在csh和bash中都尝试过。
gives baa
as I expect. So I guess the problem is with how rm
takes input but I don't know why. Tried this both in csh and bash.
推荐答案
rm不接收来自stdin的输入,因此您无法通过管道将文件列表传递给它。
rm doesn't take input from stdin so you can't pipe the list of files to it.
您需要
rm `ls | grep -v ".h"`
或
ls | grep -v ".h" | xargs rm -rf
这篇关于为什么rm无法按我期望的那样工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!