Day29 资料流重新导向II

昨天我们聊到可以将指令执行的结果导向到档案里面,那我们其实就可以利用这个特性,制作一个垃圾桶黑洞装置,你看多好,还不用担心满了要自己清理XDD。那以下就是这个特殊装置的写法。

find /home -name .bashrc 2> /dev/null

重点是那个dev/null,这个东西可以吃掉任何导向它的资料。

在某些特殊情况下,我们需要将所有正确与错误资讯都写入同一个档案中,这个时候我们就需要特殊写法了。相信有一部分朋友第一时间想到的都是以下这个写法

find /home -name .bashrc >list 2> list

但是这个是有问题的,因为两股资料同时写入一个档案,又没有使用特殊语法,所以资料还是会交叉写入档案,这个状况会导致次序的错乱,虽然最後结果档案会存在,但是里面的次序会很奇怪。正确能够达成目的的是以下这两种写法

find /home -name .bashrc >list 2>&1
find /home -name .bashrc &> list 

接下来要来介绍的是标准输入的部分,昨天有提到符号的部分,分别是<跟<<。那<代表的是原本需要由键盘输入的资料改为档案内容取代。这个小东西其实非常的有帮助,例如用在类似mail这种指令的使用上。那<<代表的是结束的输入字元,利用<<右侧的控制字元我们可以终止一次输入,不必输入[ctrl]+d

最後来总结一下我们为什麽要用资料流重新导向

(1)萤幕输出的资讯很重要,而且我们需要把资讯存下来的时候
(2)背景执行中的程序,不希望它干扰萤幕正常的输出结果的时候
(3)一些系统的例行命令,希望它可以存下来时
(4)一些执行命令的可能已知错误讯息时,想以2>dev/null丢掉的时候
(5)错误讯息与正确讯息需要分别输出时

以上就是本人介绍资料流重新导向的部分,如果有缺漏的部分,也麻烦大家多指教


<<:  Android x Kotlin : 简易实作第一堂-自定义customView与在xml中设定属性预设值

>>:  台湾游戏公司最新营收 | 第三季游戏公司营运「冻能」 | 蛤! 神逆转! 老大换人了 老二雄风不再

Laravel8_多重身份验证(第一部分)

第一部分(建立档案以及设定资料库) composer create-project laravel/...

JavaScript 进阶笔记一 (变数)

一、变数 JavaScript 七种型态 Primitive type null undefine ...

[2020铁人赛] Day28 - 用CsvHelper读写csv档案

公司最近有个需求要处理csv档案,必须要将资料库资料转成csv汇出,而且希望每个资料都有双引号,并以...

Day1 - Powershell 入门之开始

今天开始,更新 Powershell 入门系列。第一次参加铁人赛,C# 系列的文章写了十几篇了,感觉...

Day25:安全性和演算法-讯息监别码(Message Authentication Code)

讯息监别码(Message Authentication Code) 讯息监别码(Message A...