我正在尝试学习shell命令。我知道ls >output.txt
会将输出保存到output.txt
。但是,ls -z >output.txt
究竟做了什么?在我的书中,它说它不会将输出保存到output.txt
。如果是这样,它在哪里保存/打印?是-z
是什么原因导致它无法保存?
最后,ls -z 2>output.txt
做了什么?我知道2指的是stderr
(所以标准错误)。这是否意味着它会在ls
中保存output.txt
的错误(如果有)?如果是,stdout
在哪里打印/保存?在这种情况下,-z
意味着什么?
提前致谢!
答案 0 :(得分:1)
Linux上-z
没有选项ls
。那么让我们看看会发生什么:
$ 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.