标签:
由来: 当我们执行一个指令时,可能会访问档案和执行一些讯息后将一些信息显示到屏幕上,而重定向就是将如此的的讯息导向到其他文件中,事实上,默认的其实就是数据导向到屏幕文件,只是将其重定向到你指定的文件中
输入输出方式:
标准输入 (stdin):代码为0,使用<(覆盖标准输入)或<<(累加标准输入)
标准输出 (stdout):代码为1,使用>(覆盖式标准输出)或>>(累加式标准输出)
标准错误输出 (stderr):代码为2,使用2>(覆盖式标准错误输出)或2>>(累加式标准错误输出)
如以下例子:
16:55:28-root-~# cat 1.c > ./rrr 16:55:59-root-~# cat rrr #include<stdoio.h> int main() { printf("hello‘world!"); return 0; } 16:56:05-root-~# cat 1.c >> ./rrr 16:56:28-root-~# cat rrr #include<stdoio.h> int main() { printf("hello‘world!"); return 0; } #include<stdoio.h> int main() { printf("hello‘world!"); return 0; }
比较常用的情况是,我们不想讯息显示,可以重定向到/dev/null,将数据丢到数据黑洞。而另一种情况就是,我们想将标准输出和标准错误输出都定向到一个文件时,你可能会使用 >file 2>file,然而如此的结果就是会导致两股数据交叉写入到文件中,此时我们应该用>file 2>&file 或 &>file
输入重导向:
17:34:47-root-~# cat > catfile < ./1.c 17:35:44-root-~# cat catfile #include<stdoio.h> int main() { printf("hello‘world!"); return 0; } 17:35:48-root-~#
用1.c文件取代手动输入到catfile
17:38:44-root-~# cat > catfile << "eof" > testing > stop!!! > eof
若是用<<时会用右侧的字符控制结束的输入,而用<时要用ctrl+d来结束输入!
标签:
原文地址:http://www.cnblogs.com/itlxj/p/5036853.html