也许我错过了什么,但是当我输入一个详细的ditto命令(ditto [-v] [-V] 2>>some.log
)时,它会将常规输出发送到stderr
。因此,我的some.log
文件将填充copying file ...
等条目。
这对我来说没有逻辑意义,但这也是手册所说的:
-V Print a line of output to stderr for every file, symbolic link, and device copied.
我没有验证这一点,但我认为实际的I / O错误会发送到stdout
。我原来想要显示常规输出,但记录所有错误。因此,假设错误被发送到stdout
,那么这个问题实际上并不是一个问题 - 只是语义对我来说没有意义。
所以,这应该给我正确的输出:
ditto -V /some/path/ /some/other/path 1>>some.log
答案 0 :(得分:0)
实际上,ditto
会向stderr发送错误消息和详细状态消息。原因是,如果它处于-c
(创建存档)模式,并且目标文件指定为-
,则会将存档写入stdout。将状态消息与存档混合在一起会非常糟糕。顺便说一下,tar -v
做同样的事情也是出于同样的原因。