本文介绍了为什么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无法按我期望的那样工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-12 21:13