执行man mkdir > manual > manualbis后manual为空的原因咨询
关于shell重定向命令
man mkdir > manual > manualbis的问题分析 - 你的理解不正确。shell的多重标准输出重定向并非按“先写入第一个文件,再复制内容到第二个文件”的逻辑运行。
- 导致
manual为空的原因:
当你使用多个>重定向时,shell会先按从左到右的顺序依次打开并清空所有指定文件,之后只会把命令的标准输出发送给最后一个被打开的文件。
执行man mkdir > manual > manualbis时,shell先清空manual并打开它,接着清空manualbis并打开它,最终将man mkdir的全部输出写入manualbis,manual仅被清空却没有写入任何内容,因此是空文件。 - 实现预期效果的两种方法:
- 分两步执行命令:
man mkdir > manual cp manual manualbis - 使用
tee命令(可同时将输出写入多个文件):man mkdir | tee manual manualbis
- 分两步执行命令:
内容的提问来源于stack exchange,提问作者youcef GUENFAF
相关产品推荐
相关产品推荐

