做自己的女王ヽ 发表于 2018-3-1 13:46:43

linux &> 与 >的区别

linux &> 与 >的区别(也可以说成是linux stdout(标准输出) stderr(标准错误)的区别)
&>可以将stderr错误信息重定向输出

>可以将stdout标准输出信息重定向输出



下面是实际在linux命令行的测试结果:
# lll
-bash: lll: command not found   //由于Linux没有lll这个命令所以会显示错误信息,这个就是stderr输出的错误信息
# lll>test
-bash: lll: command not found//由于这个是错误信息所以不能使用标准输出>将信息重定向到test文件中,所以错误信息直接在控制台打印出来了
# lll&>test//使用&>重定向 错误信息没有输出到控制台了,表示错误信息正确重定向到了test文件
# cat test
-bash: lll: command not found//通过cat命令确实看到了保存的错误信息




总结:>只能将正常信息重定向
    &>可以将错误信息或者普通信息都重定向输出(下面是实测)

# cat test

# ll&>test
# cat test
total 8
-rwxr-xr-x 1 root root   79 Jun 29 04:14 script.sh
-rw-r--r-- 1 root root    0 Jun 29 04:52 test
-rw-r--r-- 1 root root 2444 Jun 232014 vpn_centos6.sh
# echo "" >test
# cat test

# ll>test
# cat te
cat: te: No such file or directory
# cat test
total 8
-rwxr-xr-x 1 root root   79 Jun 29 04:14 script.sh
-rw-r--r-- 1 root root    0 Jun 29 04:53 test
-rw-r--r-- 1 root root 2444 Jun 232014 vpn_centos6.sh
#

梦想家 发表于 2018-3-6 10:18:41


谢谢分享~
页: [1]
查看完整版本: linux &> 与 >的区别