gpt4 book ai didi

linux - 为什么 sort f >f 会删除所有内容?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:02 24 4
gpt4 key购买 nike

我想对一个名为 f 的文件进行排序,然后可以将文件排序后的答案存储回 f:

sort f >f

但是这个命令以一个空文件 f 结束,为什么?以及如何使用一个命令而不是这样做来实现我的目标:

sort f >1
mv 1 f

最佳答案

Shell 它调用 sort 之前创建输出文件命令。 (它必须这样做;否则它将无法重定向 sort 命令标准输出。)所以到 sort 时命令以 f 开始运行作为参数,f是一个空文件。

您可以使用 -o 来避免这种情况选项:

sort -o f f

这会导致 sort程序本身来创建输出文件 f在它开始读取输入文件之前 f .由于文件创建在类 Unix 系统上的工作方式,输入 f和输出 f实际上是两个不同的文件。

作为 sort 的 POSIX 规范说:

-o output
Specify the name of an output file to be used instead of the standard output. This file can be the same as one of the input files.

关于linux - 为什么 sort f >f 会删除所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16504882/

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