代码之家  ›  专栏  ›  技术社区  ›  sudo work

为什么ditto将错误发送到stdout并输出到stderr?

  •  1
  • sudo work  · 技术社区  · 14 年前

    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.
    

    stdout . 我最初的目的是显示常规输出,但记录所有错误。所以假设错误被发送到 标准 ,那么这个问题其实不是什么大问题-只是语义对我来说没有意义。

    所以,这应该给我正确的输出:

    ditto -V /some/path/ /some/other/path 1>>some.log
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Gordon Davisson    14 年前

    ditto 向stderr发送错误消息和详细状态消息。原因是如果它在 -c (创建存档)模式,并且目标文件被指定为 - ,它将存档文件写入stdout。将状态消息混入存档将非常糟糕。顺便说一句, tar -v