运行 具有特殊字符和空白的文件上的 sha256sum(来自 Cygwin)(引用不起作用)

Run sha256sum (from Cygwin) on file with special character and blank (quoting does not work)

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

我想 运行 sha256sum 文件 C:\Users\s1504gl\Desktop\Täst .txt。请注意德语变音符号 ä 和文件扩展名前的空格。为了避免路径出现问题,我在命令行调用中总是引用路径,比如:

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

但是,PowerShell returns

/usr/bin/sha256sum: '"C:\Users\s1504gl\Desktop\T'$'34''st .txt"': No such file or directory

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

我很确定它必须与 PowerShell 一起使用,因为该示例在我的 Linux 机器上运行没有任何问题。

有没有其他方法可以转义我不知道的特殊字符 and/or 空格?

运行 来自 Cygwin 终端

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

一般来说,Cygwin 程序不接受 Windows 路径并且可以与 POSIX 路径一起正常工作

我找到了以下解决方法:

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