在 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"