我删除了目录中的所有文件,然后ls > foo
在同一目录中运行。
运行cat foo
发现新建的文件“foo”里面有“foo”,为什么文件“foo”不为空呢?ls
执行的时候目录下还没有文件,对吧?
答案1
命令>
行指令发生在ls
命令执行之前。shell 必须准备好保存ls
命令可能产生的输出,因此它必须创建并打开文件进行写入。
当ls
由 shell 执行时,该foo
文件存在,因此ls
输出“foo”,这就是您在文件中找到的内容foo
。
我删除了目录中的所有文件,然后ls > foo
在同一目录中运行。
运行cat foo
发现新建的文件“foo”里面有“foo”,为什么文件“foo”不为空呢?ls
执行的时候目录下还没有文件,对吧?
命令>
行指令发生在ls
命令执行之前。shell 必须准备好保存ls
命令可能产生的输出,因此它必须创建并打开文件进行写入。
当ls
由 shell 执行时,该foo
文件存在,因此ls
输出“foo”,这就是您在文件中找到的内容foo
。