2011-12-30 46 views

回答

2

看来,标准的外壳(未庆典/ CSH),你需要告诉它重定向到哪里stdout第一和重定向stderr话,那么你只需要更换您的重定向:

mount /dev/sdd1 /b > /tmp/test 2>&1 

在CSH你可以使用&为Shiplu建议:

mount /dev/sdd1 /b >& /tmp/test 

在BASH &语法是不同的:

mount /dev/sdd1 /b &> /tmp/test 

BASH支持CSH &语法太,但它不是推荐(人类)

+0

2>&1发送stderr(2)到**当前**标准输出(1),因此您需要在**之后执行此操作**您已将标准输出重定向到> – joeytwiddle 2012-02-03 03:47:53

1

你想捕捉stderr。以下将捕获所有。

mount /dev/sdd1 /b >& /tmp/test 
+0

我欣赏它 – 2011-12-30 19:05:22

+0

@Shiplu'&'只有在我没有弄错的时候才是bash。 '2&1>/tmp/test'有什么问题?它应该工作,但它不适用于某些应用程序(包括安装) – 2011-12-30 19:06:03

+0

@Shiplu和为什么'>&/ tmp/test'而不是'&>/tmp/test'?他们似乎都在工作 – 2011-12-30 19:07:47

1

重定向语法取决于外壳。
有两种类型 - bash(或Bourne shell系列)和csh(或C shell系列)
在csh中,使用“cmd> &文件”重定向stdout & stderr。
在bash中,使用“cnd 2> & 1> file”来做同样的事情。
更多信息here

+0

OKay,谢谢 – 2011-12-30 19:36:26