gpt4 book ai didi

unix - 为什么 file2 在 'cat file1>file2>file3' 之后为空?

转载 作者:行者123 更新时间:2023-12-04 20:01:12 25 4
gpt4 key购买 nike

我正在尝试在 UNIX 上执行以下命令。

$ cat file1>file2>file3

在只有 file1 的场景中存在,我认为应该发生的是:
  • file2应使用 file1 的内容创建,
  • 然后 file3来自 file2 的内容.

  • 实际发生的是:
  • file2file3创建和
  • file3file1的内容
  • 但是 file2没有— file2已创建,但它是空白/空的。

  • 谁能解释为什么会发生这种情况?

    最佳答案

    在运行命令之前,shell 从左到右解释文件重定向。所以当你进入

    cat file1 > file2 > file3

    它首先进行重定向 > file2 -- 创建或清空 file2并将标准输出指向它。然后它做 > file 3 、创建或清空 file3并指向那里的标准输出。最后它运行命令 cat file1 ,内容为 file1并将其复制到标准输出。由于标准输出(现在)指向 file3 , file3最终成为那个的副本。因为当 stdout 指向 file2 时没有写入任何内容, file2最终为空。

    关于unix - 为什么 file2 在 'cat file1>file2>file3' 之后为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30291089/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com