10.5.1
什么是数据流重导向
什么是数据流重导向啊?这得要由指令的执行½果谈起!一般来说,如果你要执行一个指令,通常他
会是这样的:
10.5.1
、指令执行过程的数据传输情况
我们执行一个指令的时候,这个指令可能会由文件读入资料,经过处理之后,再½数据输出到屏幕上。
在上图当中,
standard output
standard error output
分别代表『标准输出
(STDOUT)
』与『标准错
误输出
(STDERR)
』,
这两个玩意儿默认都是输出到屏幕上面来的啊!那么什么是标准输出与标准
错误输出呢?
.
standard output
standard error output
简单的说,
标准输出指的是『指令执行所回传的正确的讯息』,而标准错误输出可理½为『
指令执
行失败后,所回传的错误讯息』
。举个简单例子来说,我们的系统默认有
/etc/crontab
但却无
/etc/vbirdsay
此时若下达『
cat /etc/crontab /etc/vbirdsay
』这个指令时,
cat
会½行:
.
标准输出:读取
/etc/crontab
后,½该文件内容显示到屏幕上;
.
标准错误输出:因为无法找到
/etc/vbirdsay
,因此在屏幕上显示错误讯息
不管正确或错误的数据都是默认输出到屏幕上,所以屏幕当然是乱乱的!那能不能透过某些机制½这
两股数据分开呢?
当然可以啊!那就是数据流重导向的功能啊!数据流重导向可以½
standard output
(
简称
stdout)
standard error output (
简称
stderr)
分别传送到其他的文件或装置去,而分别传送所
用的特殊字符则如下所示:
1.
标准输入
(stdin)
:代码为
0
,使用
<
<<
2.
标准输出
(stdout)
:代码为
1
,使用
>
>>
3.
标准错误输出
(stderr)
:代码为
2
,使用
2>
2>>
为了理½
stdout
stderr
,我们先来½行一个范例的练习:
范例一:
察你的系
根目
(/)
下各目
的文件名、
限与
性,并
记录
[dmtsai@study ~]$
ll /
<==
屏幕
会显
示出文件名信息
[dmtsai@study ~]$
ll / > ~/rootfile
<==
屏幕并
任何信息