当前位置: 技术问答>linux和unix
请问大家输入输出重定向是什么意思,详细说下.
来源: 互联网 发布时间:2016-06-07
本文导语: 我一直都不理解重定向三个字是什么意思,我是新手,希望谁能详细举例说一下. | 这是个很有用的东西,比如你在程序里调用一个系统命令“ls”, 你想得到这个命令的输出,你可以把输出重...
我一直都不理解重定向三个字是什么意思,我是新手,希望谁能详细举例说一下.
|
这是个很有用的东西,比如你在程序里调用一个系统命令“ls”, 你想得到这个命令的输出,你可以把输出重定向到一个临时文件中“ls > tmp”,然后可以在程序中打开tmp文件得到ls的返回值
|
楼上说的很对,不过没听说|也是重定向的符号,都是成为管道,和重定向还是两码事。
|
举个例子吧.
一般你运行代码,结果总是默认输出到标准输出屏幕上面,现在你可以重定向的你结果的输出地方.
比如你可以让它输出到某个文件里存起来,这就是重定向啊.
一般你运行代码,结果总是默认输出到标准输出屏幕上面,现在你可以重定向的你结果的输出地方.
比如你可以让它输出到某个文件里存起来,这就是重定向啊.
|
说到重定向,肯定得说到 标准输入输出
一般地,输入输出的对应文件描述符:
STDIN 0
STDOUT 1
STDERR 2
说白了,“重定向”就是把前一个命令的 STDOUT或者STDERR作为后一个命令的 STDIN。
重定向的符号除了 > ,还有 |
cat readme.txt | less
./run_program > log.txt 2>&1
(把run_program的结果输出到 log.txt,包括输出的错误信息)
一般地,输入输出的对应文件描述符:
STDIN 0
STDOUT 1
STDERR 2
说白了,“重定向”就是把前一个命令的 STDOUT或者STDERR作为后一个命令的 STDIN。
重定向的符号除了 > ,还有 |
cat readme.txt | less
./run_program > log.txt 2>&1
(把run_program的结果输出到 log.txt,包括输出的错误信息)
|
重定向用的是dup, dup2系统调用,
管道是用pipe,fifo.
管道是用pipe,fifo.
|
你可以這樣理解:
重定向就像一個管道,比如默認輸出的內容是到屏幕上的,你現在弄一個輸出的管道,把原來輸出到屏幕上的內
容“截流”到一個文件中去,這就是輸出重定向了,比如下面的命令:
$ cal > month
輸入重定向和輸出重定向恰好相反。正常的情況下,輸入的來源可能有鼠標,鍵盤,掃描儀等等,現在你弄個管
道,把輸入的給“截流”了,現在你把一個文件接到了管道的另一頭,這樣文件就成了輸入源了,用的符號就是 <
重定向就像一個管道,比如默認輸出的內容是到屏幕上的,你現在弄一個輸出的管道,把原來輸出到屏幕上的內
容“截流”到一個文件中去,這就是輸出重定向了,比如下面的命令:
$ cal > month
輸入重定向和輸出重定向恰好相反。正常的情況下,輸入的來源可能有鼠標,鍵盤,掃描儀等等,現在你弄個管
道,把輸入的給“截流”了,現在你把一個文件接到了管道的另一頭,這樣文件就成了輸入源了,用的符號就是 <