几个容易混淆的重定向
2013-06-10 21:53
232 查看
进程预定义了三个文件描述符,分别是STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO。分别是标准输入,标准输出,标准错误输出。
例如:
$cat file1 默认输出是标准输出
$tee 默认从标准输入读入
$noexistcommand
现在我们不想对上面三个输入输出走默认的途径,例如我要输出到文件中去;我要从文件中读取,而不是标准输入;我不想在终端打印错误怎么办呢?
$cat file1 > output.txt 将输出重定向到文件中,这个命令等同于 $ cat file1 1> output.txt
$tee < input.log 将输入重定向到input.log, 这个命令等同于 $tee 0< input.log
$noexistcommand 2> err.txt
来点更为复杂的例子:
$tee < input.log >output.log 输入来自input.log,输出到output.log
书中有个例子挺好:
./a.out > outfile 2>&1
将标准输出重定向到outfile,标准出错重定向到&1,而标准输出已经重定向到outfile,即标准输出和标准出错都重定向到outfile中。
./a.out 2>&1 > outfile
首先讲标准错重定向到标准输出,再将标准输出重定向到了outfile。这样标准错误将与标准输出相关联,标准错误与outfile相关联。标准错误输出到终端,标准输出将写到outfile中。
例如:
$cat file1 默认输出是标准输出
$tee 默认从标准输入读入
$noexistcommand
现在我们不想对上面三个输入输出走默认的途径,例如我要输出到文件中去;我要从文件中读取,而不是标准输入;我不想在终端打印错误怎么办呢?
$cat file1 > output.txt 将输出重定向到文件中,这个命令等同于 $ cat file1 1> output.txt
$tee < input.log 将输入重定向到input.log, 这个命令等同于 $tee 0< input.log
$noexistcommand 2> err.txt
来点更为复杂的例子:
$tee < input.log >output.log 输入来自input.log,输出到output.log
书中有个例子挺好:
./a.out > outfile 2>&1
将标准输出重定向到outfile,标准出错重定向到&1,而标准输出已经重定向到outfile,即标准输出和标准出错都重定向到outfile中。
./a.out 2>&1 > outfile
首先讲标准错重定向到标准输出,再将标准输出重定向到了outfile。这样标准错误将与标准输出相关联,标准错误与outfile相关联。标准错误输出到终端,标准输出将写到outfile中。
相关文章推荐
- XML数据库中几个容易混淆的概念
- STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
- easyrec推荐系统学习过程中容易混淆的几个概念
- JAVA学习中容易混淆的几个知识点
- 【Qt开发】【VS开发】【Linux开发】OpenCV、Qt-MinGw、Qt-msvc、VS2010、VS2015、Ubuntu Linux、ARM Linux中几个特别容易混淆的内容
- OpenMP中几个容易混淆的函数(线程数量/线程ID/线程最大数)以及并行区域线程数量的确定
- C++中的模板比较容易混淆的几个概念:类模板和类成员模板以及函数模板
- 黑马程序员-Java容易混淆的几个概念
- sql语句,几个容易混淆的关键词
- Math类几个容易混淆的方法
- Oracle数据库中的几个容易混淆的概念总结(根据网络资源总结)
- Android组建3:几个容易混淆的地方(this,getApplicationContext,fill_parent match_parent)
- OpenMP: 几个容易混淆的函数
- .Net中几个容易混淆的概念
- Java初学者容易混淆的几个问题
- XML数据库中几个容易混淆的概念
- STL中容器的几个容易混淆的成员函数-size, capacity, resize, reserve
- H3C S3600 /S5600有几个容易混淆的ARP功能,
- C++中几个容易混淆的概念——函数的重载、覆盖和隐藏
- android布局中容易混淆的几个属性