为什么“ls > foo”会生成一个包含“foo”的文件?

为什么“ls > foo”会生成一个包含“foo”的文件?

我删除了目录中的所有文件,然后ls > foo在同一目录中运行。

运行cat foo发现新建的文件“foo”里面有“foo”,为什么文件“foo”不为空呢?ls执行的时候目录下还没有文件,对吧?

答案1

命令>行指令发生在ls命令执行之前。shell 必须准备好保存ls命令可能产生的输出,因此它必须创建并打开文件进行写入。

ls由 shell 执行时,该foo文件存在,因此ls输出“foo”,这就是您在文件中找到的内容foo

相关内容