CMD 没有附加 WSL 输出

CMD 没有附加 WSL 输出

在 cmd.exe 中,我尝试将 WSL2 输出附加到某个文件,如下所示:

C:\somepath>echo Some contents> somefile

C:\somepath>bash.exe --noprofile --norc -c "echo APPEND">> somefile
Processing fstab with mount -a failed.


C:\somepath>type somefile
APPEND
ntents

C:\somepath>

正如你所见,输出不是附加到文件,但是覆盖开始的文件。我无法想象这是故意设计的。

这只会发生在 WSL 或 Bash 中,当然不会发生在常规命令中。但我希望 cmd 负责写入正确的位置。WSL 输出有什么特别之处?

每次调用 WSL 时,我都会看到一行“使用 mount -a 处理 fstab 失败”。我认为这没什么关系……?

答案1

Windows 和 WSL/Linux 之间的界限并不明确,所以有时会出现奇怪的副作用。

就您而言,可能bash不知道somefile其中已经有一些数据,因此它只是覆盖了文件内容的开头。

您可以以不同的方式制定命令,以避免跨越太多边界:

bash.exe --noprofile --norc -c "echo APPEND >> somefile"

相关内容