我在试着学习shell命令。我知道ls >output.txt将输出保存到output.txt。然而,ls -z >output.txt究竟做什么?在我的书中,它说它不会将输出保存到output.txt。如果这是真的,它在哪里保存/打印它?还有,是什么原因导致它不保存它?
最后,-z做什么?我知道2是指ls -z 2>output.txt(所以是标准误差)。这是否意味着它保存了stderrls的错误(如果有)?如果是,在哪里打印/保存output.txt?在这种情况下,stdout是什么意思?
提前谢谢!

最佳答案

Linux上没有-z选项。所以让我们看看会发生什么:

$ LANG=C ls -z  > /tmp/x
ls: invalid option -- 'z'
Try 'ls --help' for more information.

错误消息将转到连接到终端的STDERR。
标准输出(为空)被重定向到/tmp/x,因此我们得到一个空文件。
$ LANG=C ls -z  2> /tmp/x

在第二种情况下,STDOUT连接到终端,但是没有输出。发送到STDERR的错误消息在/tmp/x中着陆:
$ cat /tmp/x
ls: invalid option -- 'z'
Try 'ls --help' for more information.

关于linux - shell命令`ls –z> output.txt`和`ls –z 2> output.txt`之间的区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35643920/

10-14 20:19
查看更多