以特殊字符和空白在文件上运行sha256sum(来自Cygwin)(引用无效)

时间:2018-11-27 13:23:38

标签: powershell cygwin sha256

我安装了Cygwin以便在Windows上使用Linux命令行工具。我也将它添加到了我的PATH。通常,它可以正常工作,但我观察到这种奇怪的行为:

我要在文件sha256sum上运行C:\Users\s1504gl\Desktop\Täst .txt。注意文件扩展名前的德语Umlaut ä和空格。为了避免路径问题,我总是在命令行调用中引用路径,例如:

sha256sum "C:\Users\s1504gl\Desktop\Täst .txt"

但是,PowerShell返回

  

/ usr / bin / sha256sum:'“ C:\ Users \ s1504gl \ Desktop \ T'$'\ 303 \ 244''st .txt”':没有这样的文件或目录

当我将文件重命名为Täst.txtTest .txt时,它可以工作。因此,特殊字符ä和空格的组合似乎引起了问题。在这种情况下,将双引号替换为单引号不会更改任何内容。

我非常确定必须使用PowerShell,因为该示例在Linux机器上没有任何问题。

还有其他不知道的转义特殊字符和/或空格的方法吗?

2 个答案:

答案 0 :(得分:0)

从Cygwin终端运行

sha256sum "/cygdrive/C/Users/s1504gl/Desktop/Täst\ .txt"

一般Cygwin程序不接受Windows路径,并且可以与POSIX路径一起正常使用

答案 1 :(得分:0)

我发现了以下解决方法:

我从R创建一个包含所有必要命令的临时文件,然后使用bash运行此临时文件,该文件也包含在Cygwin中。这样,我就避免了由于Windows和Cygwin的Linux工具中的编码不同而导致的问题。