输出重定向中不清楚的时刻



我在~/Documents文件夹中有两个文件text1text2。当我输入命令
ls >listing,然后查看listing文件的内容,我可以看到

listing
text1
text2

你能从技术上解释为什么包含listing吗?我认为它需要ls命令的输出,该命令只有2行,然后创建listing文件并将这2行放在那里。但显然不是。

shell在解析命令行后立即创建'listing';它必须调用open(2)来获取一个文件描述符,以便传递给ls的分支进程。因此,在ls开始时,它已经在那里了。

最新更新