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是个伪文件,是系统的零发生器。作用说白了就是往一个文件里不断输入零,让文件达到所规定的大小。有点注水猪肉的味道。
转载于:https://blog.51cto.com/3196135/762098