z"是如何工作的?-6ren"> z"是如何工作的?-我有三个文件 x、y 和 z,其中包含一些内容。 如果我运行 $cat x y z > z ,它似乎会在将 x 和 y 写入 z 之前截断文件 z。 我希望它能够将 x、y 和 z 的内容连接为 z。-6ren">
gpt4 book ai didi

linux - "cat x y z > z"是如何工作的?

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:37 24 4
gpt4 key购买 nike

我有三个文件 x、y 和 z,其中包含一些内容。

如果我运行 $cat x y z > z ,它似乎会在将 x 和 y 写入 z 之前截断文件 z。

我希望它能够将 x、y 和 z 的内容连接为 z。有人可以解释为什么事实并非如此吗?另请解释我收到的这个警告

$ echo "one" > x
$ echo "two" > y
$ echo "three" > z
$ cat x y z
one
two
three
$ cat x y z > z
cat: z: input file is output file
$ cat z
one
two

最佳答案

shell 作用于 >z,在 cat 启动之前打开 z 进行输出并截断它。 cat 通过检查 stdout 的 inode 与每个输入的 inode 来保护您免受无限循环(无限循环,直到磁盘已满)。

关于linux - "cat x y z > z"是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45005372/

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