范例三:承范例二,
½
stdout
与
stderr
分存到不同的
文件
去
[dmtsai@study ~]$
find /home
-
name .bashrc > list_right 2> list_error
注意喔,此时『屏幕上不会出现任何讯息』!因为刚刚执行的½果中,有
Permission
的那几行错误
信息都会跑到
list_error
这个文件中,至于正确的输出数据则会存到
list_right
这个文件中啰!这样
可以了½了吗?
如果有点混乱的话,去休息一下再回来看看吧!
.
/dev/null
垃圾桶黑洞装置与特殊写法
想象一下,如果我知道错误讯息会发生,所以要½错误讯息忽略掉而不显示或储存呢?
这个时候黑
洞装置
/dev/null
就很重要了!这个
/dev/null
可以吃掉任何导向这个装置的信息喔!½上述的范例
修订一下:
范例四:承范例三,
½错误
的
数
据
丢弃
,屏幕上
显
示正确的
数
据
[dmtsai@study ~]$
find /home
-
name .bashrc 2> /dev/null
/home/dmtsai/.bashrc
<==
只有
stdout
会显
示到屏幕上,
stderr
被
丢弃
了
再想象一下,如果我要½正确与错误数据通通写入同一个文件去呢?这个时候就得要使用特殊的写法
了!
我们同样用底下的案例来说明:
范例五:
½
指令的
数
据全部
写
入名
为
list
的
文件
中
[dmtsai@study ~]$
find /home
-
name .bashrc > list 2> list
<==
错误
[dmtsai@study ~]$
find /home
-
name .bashrc > list 2>&1
<==
正确
[dmtsai@study ~]$
find /home
-
name .bashrc &> list
<==
正确
上述表格第一行错误的原因是,
由于两股数据同时写入一个文件,又没有使用特殊的语法,
此时两
股数据可能会½叉写入该文件内,造成次序的错乱
。所以虽然最终
list
文件还是会产生,但是里面
的数据排列就会怪怪的,而不是原本屏幕上的输出排序。
至于写入同一个文件的特殊语法如上表所
示,你可以使用
2>&1
也可以使用
&>
!
一般来说,鸟哥比½习惯使用
2>&1
的语法啦!
.
standard input
:
<
与
<<
了½了
stderr
与
stdout
后,那么那个
<
又是什么呀?呵呵!以最简单的说法来说,
那就是『
½原
本需要由键盘输入的数据,改由文件内容来取代
』的意思。
我们先由底下的
cat
指令操作来了½一
下什么½做『键盘输入』吧!
范例六:利用
cat
指令
来
½立一
个
文件
的
简单
流程
[dmtsai@study ~]$
cat > catfile
testing
cat file test
<==
这
里按下
[ctrl]+d
来
离
开
[dmtsai@study ~]$
cat catfile