7.1输入输出重定向

一、“>”输出重定向命令

 cat /etc/passwd |head -3 >test1

把etc下的passwd头三行输出到指定的test文件里,并且覆盖原文件里的内容。

二、">>"输出追加命令

cat /etc/passwd |tail -3 >>test2

cat test1 test2 >>test3

把test1,test2输出到指定的test3文件里,但不覆盖原文件里的内容,在原文件后面追加。

注意:输出文件不能作为输入文件

cat test1 test2>>test2

此命令错误!

问题:如果想在原文件前面追加,怎么办?

tac test1 >>test3?(不行,这只会把test1文件倒着追加到test3后面)

我只能想到最笨的一种方法:cat test1 test3 >test4 ,cat test4>test3 ;

三、

在linux中,常见的输入输出有如下几种:

标准输入: 输入设备为:键盘,文件    并标记为 0

标准输出: 输出设备为:屏幕,终端    并标记为 1

错误输出: 输出设备为:屏幕,终端   并标记为  2

这样我们就有机会把正确和错误的文件分开显示

比如 cat test1 test5 1>right.txt 2>error.txt

这样由于test1存在 所以test1的内容会被输入到right.txt中,而test5没有创建,则执行cat test5命令时会报错,则报错的内容会被输入到error.txt中。

cat error.txt

cat :test5:没有那个文件或目录

当然也有通吃命令 &>

cat test1 test5 &>tongchi(这表示不管你是对是错都输入到此文件中去)

追加">>"的使用,跟上述相同

五、“<”导入命令

gunzip <passwd.gz>passwd(将压缩文件 passwd.gz,传递给前面的解压缩文件去执行,然后重定向到指定文件。)

这里有个很出名的命令

dd if=/dev/zero of=linbs=1024 count=20000

这条命令是产生一个指定大小的文件。/dev/zero是个伪文件,是系统的零发生器。作用说白了就是往一个文件里不断输入零,让文件达到所规定的大小。有点注水猪肉的味道。