3
tar到管道,但将-v详细输出与STDERR分开
普通的tar命令 tar cvf foo.tar ./foo >foo.out 2>foo.err 具有三个输出IO流 将数据存档到foo.tar 文件名列表到STDOUT(重定向到foo.out) 错误消息到STDERR(重定向到foo.err) 然后,我可以检查foo.err中是否有错误消息,而不必阅读文件名列表。 如果我想对存档数据做一些事情(通过netcat或特殊的压缩程序通过管道传输),则可以使用tar的 -f -选项 tar cvf - ./foo 2>foo.err | squish > foo.tar.S 但是现在我的文件名列表和我的错误消息混在一起了,因为tar的-v输出显然无法转到STDOUT(这是存档数据流的地方),因此tar巧妙地将其写入了STDERR。 使用Korn Shell,有一种方法可以构造一个命令,该命令将存档流传输到另一个命令,但仍然捕获-v输出与任何错误消息。