如何在Windows(10)上写入NULL设备/文件,这样我就可以**不**读回所写的内容



Windows确实有一个空设备的概念,例如这里或这里详细介绍的。我能找到的所有例子都是关于重定向流的。

在将脚本从Linux移植到Windows时,我遇到了一些奇怪的事情:如果nul像文件一样打开,我会对它进行写入、关闭、重新打开并读回数据。有时在检查工作目录时,我可以看到一个名为nul的文件正在创建,并在向其写入数据时不断增长。具有讽刺意味的是,我无法从资源管理器中删除它,只能从命令行中删除。

如今,Windows 10自带OpenSSH的原生实现。我想用一个老技巧:当它在寻找known_hosts文件时,我想把它指向一个空设备。在Linux上,它看起来如下:ssh -o UserKnownHostsFile=/dev/null user@host。在Windows上,我对它进行了如下测试:ssh -o UserKnownHostsFile=nul user@host。我得到了一个名为nul的文件,其中包含主机。我还尝试了NULnullNULL,结果相同。尝试指向DeviceNull/Device/Null会导致ssh抱怨找不到/打开这些文件。

如何在Windows(10(上正确使用和/或指向空设备?

JS群组有一个解决方案:我需要指向\.NUL。这显然是空设备的实际名称或路径。

我正在做的是创建一个文件C:Usersmyself.sshconfig(就像在Linux上一样(,其中包括:

# Don't save local computers to known_hosts
Host localhost 127.?*.?*.?* *.local 10.?*.?*.?* 192.168.?*.?* 172.16.?*.?* 172.17.?*.?* 172.18.?*.?* 172.19.?*.?* 172.2?.?* 172.30.?*.?* 172.31.?*.?*
StrictHostKeyChecking no
UserKnownHostsFile=\.NUL

这与大多数IPv4内容/任何被视为专用网络的内容相匹配。在家里这样做,但不要在你的公司网络中这样做——因为原因。

相关内容

最新更新