重定向输出和错误

时间:2017-05-28 07:46:45

标签: shell

你好我试图删除目录中的所有文件,如果他们的名字中有'm',并将已删除的文件重定向到文件ANSWER中,如果文件ERRORS中有错误。所以我创建了这两个文件,我试图一次执行所有内容这是我的代码:

rm  $ (ls | grep 'm' > ANSWER 2>ERROR)

但是我得到rm缺少操作数的错误(我的文件名在当前目录中有m)

1 个答案:

答案 0 :(得分:0)

在你的内部命令中,所有输出都被重定向到ANSWER文件,没有任何内容留给rm。如果您评估

,可以看到这一点

ls | grep 'm' > ANSWER 2>ERROR

屏幕上不会打印任何内容。要使它在一个命令中工作,您可以尝试

rm $(ls | grep 'm' > >(tee ANSWER) 2>ERROR)

tee写入标准输出和ANSWER文件