Unix 中shell命令。结果重定向(>)和结果附加重定向(>>)有什么区别?
2014-06-19
展开全部
shell 使用三种标准 I/O 流:
stdout 是标准输出流,显示来自命令的输出。它的文件描述符是 1。
stderr 是标准错误流,显示来自命令的错误输出。它的文件描述符是 2。
stdin 是标准输入流,向命令提供输入。它的文件描述符是 0。
输入流向程序提供输入,常常是来自终端键盘。输出流打印文本字符,常常是在终端上。终端原来是 ASCII 打字机或显示终端,但是现在常常是图形桌面上的窗口。
对输出进行重定向
对输出进行重定向有两种方法:
n>
将来自文件描述符 n 的输出重定向到文件。必须对这个文件有写权限。如果文件不存在,就创建它。如果它存在,现有内容常常会丢失而没有警告。
n>>
也将来自文件描述符 n 的输出重定向到文件。同样,必须对这个文件有写权限。如果文件不存在,就创建它。如果它存在,输出就附加到现有文件后面。
n> 或 n>> 中的 n 是指文件描述符。如果忽略,就假设是标准输出。清单 66 演示使用重定向将来自 ls 的标准输出和标准错误分别放进两个文件,这些文件是在 lpi103 目录中创建的。还演示了如何将输出附加到现有的文件中。
清单 66. 输出重定向
stdout 是标准输出流,显示来自命令的输出。它的文件描述符是 1。
stderr 是标准错误流,显示来自命令的错误输出。它的文件描述符是 2。
stdin 是标准输入流,向命令提供输入。它的文件描述符是 0。
输入流向程序提供输入,常常是来自终端键盘。输出流打印文本字符,常常是在终端上。终端原来是 ASCII 打字机或显示终端,但是现在常常是图形桌面上的窗口。
对输出进行重定向
对输出进行重定向有两种方法:
n>
将来自文件描述符 n 的输出重定向到文件。必须对这个文件有写权限。如果文件不存在,就创建它。如果它存在,现有内容常常会丢失而没有警告。
n>>
也将来自文件描述符 n 的输出重定向到文件。同样,必须对这个文件有写权限。如果文件不存在,就创建它。如果它存在,输出就附加到现有文件后面。
n> 或 n>> 中的 n 是指文件描述符。如果忽略,就假设是标准输出。清单 66 演示使用重定向将来自 ls 的标准输出和标准错误分别放进两个文件,这些文件是在 lpi103 目录中创建的。还演示了如何将输出附加到现有的文件中。
清单 66. 输出重定向
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询