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