当我们使用linux的时候,每下达1个命令,通常都会有对应的信息输出在屏幕上,这些输出的资料就是资料流,而Linux资料流重导向,就是把这些资料输出到不同的地方了。
而资料流通常分为正确的资料跟错误的资料,如果我们要把正确的资料导向到我们要的文件里面去,可以使用>(覆盖)和>>(添加)来处理。
[malt@malt ~]$ ls -ll
total 4
-rw-r--r--. 1 root root 53 Apr 13 10:44 welcome.txt
[malt@malt ~]$ ls -ll > output //重点
[malt@malt ~]$ cat output
total 4
-rw-rw-r--. 1 malt malt 0 Apr 25 10:36 output
-rw-r--r--. 1 root root 53 Apr 13 10:44 welcome.txt
上面我们就把ls -ll这个命令的输出输出到了output里面了,那如果要输出错误的资料流,我们就可以使用2>(覆盖)和2>>(添加)来处理。具体的使用就跟>和>>一样。
如果想把正确的资料流跟错误的资料流同时输出到1个文件上,写法就是
[malt@malt ~]$ ls -l ../http/ ../malt/
ls: cannot open directory ../http/: Permission denied
../malt/:
total 12
-rw-rw-r--. 1 malt malt 220 Apr 25 10:39 ls_out
-rw-rw-r--. 1 malt malt 107 Apr 25 10:36 output
-rw-r--r--. 1 root root 53 Apr 13 10:44 welcome.txt
[malt@malt ~]$ ls -l ../http ../malt &> ls_out //重点
[malt@malt ~]$ cat ls_out
ls: cannot open directory ../http: Permission denied
../malt:
total 12
-rw-rw-r--. 1 malt malt 53 Apr 25 10:40 ls_out
-rw-rw-r--. 1 malt malt 107 Apr 25 10:36 output
-rw-r--r--. 1 root root 53 Apr 13 10:44 welcome.txt
既然有输出,自然有输入,而输入的时候我们就是使用<进行输入资料流,现在我想把.bashrc里面的问题导入到output这个文件中,除了使用cp复制外,我们还可以使用cat 搭配 导入跟导出来完成
[malt@malt ~]$ cat > output <.bashrc
[malt@malt ~]$ ls -ll output .bashrc
-rw-r--r--. 1 malt malt 231 Aug 3 2016 .bashrc
-rw-rw-r--. 1 malt malt 231 Apr 25 10:52 output