LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: zihua

请教:今天刚安装的RedHat 9,学习ls的问题..

[复制链接]
发表于 2007-11-8 09:24:48 | 显示全部楼层
重定向是文件到程序或者程序到文件,管道则直接是程序到程序
回复 支持 反对

使用道具 举报

发表于 2007-11-8 13:59:56 | 显示全部楼层
Post by onelay;1778887
不明白单向,双向是指那方面的???

重定向相当于:一方提供信息  另一方   接收信息。(会计比喻:提供方为产成品)
管道相当于:一方提供信息  另一方  接收再加工。(会计比喻:提供方为半成品)

重定向到虚拟或者伪终端满好玩的。
如:echo "what are you doing?" > /dev/pts/4                           

/dev/pts/4 为接收的伪终端, 可用tty查看!


管道只能定向到输出,重定向不仅能定向到输出还能定向到输入,所以说它是双向的
回复 支持 反对

使用道具 举报

发表于 2007-11-8 16:17:07 | 显示全部楼层
Post by iso;1779249
管道只能定向到输出,重定向不仅能定向到输出还能定向到输入,所以说它是双向的

>为重定向输出。     <为重定向输入。   |为管道。
如果“管道只能定向到输出,重定向不仅能定向到输出还能定向到输入”
那么 “ >重定向输出            ==             |为管道”

那么你试一下这两条命令结果会相等吗?
echo "what are you doing?" > /dev/pts/4
echo "what are you doing?" | /dev/pts/4

管道就是管道,根本定不了向。    只能说重定向有输入输出设备端口的参与,管道只有输出设备端口的参与。


基本上linux命令接受和输出数据都通过 stdin(标准输入)  stdout(标准输出) stder(标准错误)三种端口。

重定向是:改变命令接受和输出数据的标准输入输出设备端口,指定任
                          意一个你想要的输入输出设备端口。

管道是:命令输出的数据通过标准输出端口送给后一条命令,作为该命
                         令的输入数据。


Xenofex这老兄讲得很好
“重定向是文件到程序或者程序到文件,管道则直接是程序到程序 ”


如果改成
“重定向是程序到输入输出设备端口,管道则直接是程序到程序”

或者改成
“重定向是命令到输入输出设备端口,管道则直接是命令到命令”

这样就更好了!
回复 支持 反对

使用道具 举报

发表于 2007-11-8 16:45:35 | 显示全部楼层
我只是说了说两者的定向的差异,也许是我记错了?
至于重定向输出 == |为管道?
则由下面来解答
重定向是文件到程序或者程序到文件,管道则直接是程序到程序!
另外,在linux中设备即文件
回复 支持 反对

使用道具 举报

发表于 2007-11-8 17:16:54 | 显示全部楼层
Post by iso;1779368
我只是说了说两者的定向的差异,也许是我记错了?
至于重定向输出 == |为管道?
则由下面来解答
重定向是文件到程序或者程序到文件,管道则直接是程序到程序!
另外,在linux中设备即文件

"在linux中设备即文件"     
我不同意你的说法,只能说设备是用文件的形式表示的。

设备即设备文件,设备文件只是文件的一种。
比如文本文件也属于文件,不能说设备文件即文本文件!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表