关于bash中的数据流重导向
2015-12-10 18:12
357 查看
由来: 当我们执行一个指令时,可能会访问档案和执行一些讯息后将一些信息显示到屏幕上,而重定向就是将如此的的讯息导向到其他文件中,事实上,默认的其实就是数据导向到屏幕文件,只是将其重定向到你指定的文件中
输入输出方式:
标准输入 (stdin):代码为0,使用<(覆盖标准输入)或<<(累加标准输入)
标准输出 (stdout):代码为1,使用>(覆盖式标准输出)或>>(累加式标准输出)
标准错误输出 (stderr):代码为2,使用2>(覆盖式标准错误输出)或2>>(累加式标准错误输出)
如以下例子:
比较常用的情况是,我们不想讯息显示,可以重定向到/dev/null,将数据丢到数据黑洞。而另一种情况就是,我们想将标准输出和标准错误输出都定向到一个文件时,你可能会使用 >file 2>file,然而如此的结果就是会导致两股数据交叉写入到文件中,此时我们应该用>file 2>&file 或 &>file
输入重导向:
用1.c文件取代手动输入到catfile
若是用<<时会用右侧的字符控制结束的输入,而用<时要用ctrl+d来结束输入!
输入输出方式:
标准输入 (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来结束输入!
相关文章推荐
- nodejs 执行shell 命令
- Linux下Shell发送附件邮件&中文乱码
- shell之logger
- shell之$(cmd)
- shell之cut
- shell之test
- ls -bash: ls: command not found 修改 /etc/profile 后命令不识别
- Android adb shell am 命令介绍
- shell中&&和||
- Unix Shell中用[-n]判断字符串不为NULL
- 清理/var/log/messages的脚本
- 使用shell和awk批量处理二进制数据
- shell记录
- shell 常用命令之三 grep
- 需要交互的shell编程——EOF(转载)
- git shell 命令大全
- Shell 学习笔记
- Shell教程(六):函数、联机帮助
- Shell教程(五):替代、引用机制、输入输出重定向
- Shell教程(四):条件语句、循环语句、break/continue