(五)输出重定向命令
> 重定向输出(覆盖)
>>重定向输出(追加)
1>正确重定向输出(覆盖)
2>错误重定向输出(覆盖)
1>>正确重定向输出(追加)
2>>错误重定向输出(追加)
# > 将输出结果以"覆盖"的形式存储在指定的文件中, 若文件不存在则自动创建
# >> 将输出结果以“追加”的形式存储在指定的文件中, 若文件不存在则自动创建
如果指令执行失败呢? 输出结果就不会保存到指定文件中,所以就需要将输出的正确结果保存到一个文件中, 输出的错误结果保存到另一个文件中,可以借助 1> 和 2>
[root@localhost 20141009]# ls dd >log ls: 无法访问dd: 没有那个文件或目录 [root@localhost 20141009]# [root@localhost 20141009]# ls dd >right.log 2>wrong.log [root@localhost 20141009]# cat right.log [root@localhost 20141009]# cat wrong.log ls: 无法访问dd: 没有那个文件或目录 [root@localhost 20141009]#
Linux是通过什么来判断的呢?因为每个当前指令的执行结果都保存在环境变量“?”中,当指令执行成功时 ?=0,当指令执行失败时 ?!=0。Linux就是通过它来判断输出结果保存到哪个文件中的:
[root@localhost 20141009]# ll ss ls: 无法访问ss: 没有那个文件或目录 [root@localhost 20141009]# echo $? 2 [root@localhost 20141009]# cd 20141009/ -bash: cd: 20141009/: 没有那个文件或目录 [root@localhost 20141009]# echo $? 1 [root@localhost 20141009]# cd [root@localhost ~]# echo $? 0
如果想不论指令执行正确与否,都将结果输出到同一个指定文件中,用&>
[root@localhost 20141009]# ll sssss &>log [root@localhost 20141009]# cat log ls: 无法访问sssss: 没有那个文件或目录 [root@localhost 20141009]# ll &>>log [root@localhost 20141009]# cat log ls: 无法访问sssss: 没有那个文件或目录 总用量 8 -rw-r--r--. 1 root root 51 10月 9 22:43 log -rw-r--r--. 1 root root 20 10月 9 22:10 test
覆盖和追加相似,不再另作描述

浙公网安备 33010602011771号