Linux IO 重定向自己的理解

本文深入探讨Linux IO重定向的基本原理,通过文件描述表和文件描述符来阐述重定向的本质。文章介绍了如何改变文件描述符对应的内容以实现不同类型的重定向,并通过实例解析了复杂的重定向操作,如>&命令的复制含义和>命令的赋值含义。此外,还讨论了如何使用文件描述符进行输入输出的重定向,并强调了文件描述符与指针的相似性,帮助读者更好地理解这一概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###Linux shell学习的好网址:http://www.runoob.com/linux/linux-shell.htm 内容比较简洁和高效 ### 1:字符串在shell中的三种表达形式: 单引号‘this is’;双引号“”;什么都不加。在‘’中,原样输出,转义字符和变量都是无效的;而“”中可以保持转移字符和变量的含义;什么都不加的做法和“”是同样的。所以shell中什么都不加的也是字符串,这就和其他编程语言有很大的区别,但是shell本身就是命令行中各种命令的集合,仔细想想这种做法也是符合通常情况下命令行的做法的,命令行中也没有加‘’或者“”。 ### 2:IO重定向 1>&2和2>&1的区别是什么?>和>&的区别?<和<&的区别? 2-1:>和>&的区别 似乎终于有点头目了>后面一般跟着的是filename文件名,而>&后面一般跟着的是FD,文件描述符,是一个文件描述符数字。同理也是<和<&的区别。因为>其实是隐含的1>,而当>&前面不指定FD时候,是1>&。对<而言,隐含的是0<;同理<&是隐含的0<&。 所以别人家的总结不是随便说说的:
COMMAND_OUTPUT >
   # 将stdout重定向到一个文件.
   # 如果这个文件不存在, 那就创建, 否则就覆盖.
 
ls -lR > dir-tree.list
   # 创建一个包含目录树列表的文件.
 
: > filename
   # >操作, 将会把文件"filename"变为一个空文件(就是size为0).
   # 如果文件不存在, 那么就创建一个0长度的文件(与'touch'的效果相同).
   # :是一个占位符, 不产生任何输出.
 
> filename
   # >操作, 将会把文件"filename"变为一个空文件(就是size为0).
   # 如果文件不存在, 那么就创建一个0长度的文件(与'touch'的效果相同).
   # (与上边的": &g
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值