一般如何将输入和输出重定向到同一个文件?我的意思是,具体来说,有一个-o
命令sort
,并且对于各种命令可能还有其他这样的选项。但是,我通常如何将输入和输出重定向到同一个文件而不破坏文件呢?
例如:sort a.txt > a.txt
破坏a.txt
文件内容,但我想将答案存储在同一个文件中。我知道我可以在使用临时文件后使用mv
and rm
,但是可以直接执行吗?
如果命令不支持mv
在完成后自行执行,则不会。
shell 在运行您告诉它运行的命令之前就会截断输出文件。(尝试使用不存在的命令,您会发现它仍然被截断。)
这就是为什么有些命令有选项可以为您执行此操作(使您不必command input > output && mv output input
自己使用或类似)。