Запустите sha256sum (из Cygwin) для файла со специальным символом и пробелом (цитирование не работает) - PullRequest
0 голосов
/ 27 ноября 2018

У меня установлен Cygwin для использования инструментов командной строки Linux в Windows.Я также добавил это к своему ПУТИ.В общем, все работает нормально, но я наблюдаю странное поведение:

Я хочу запустить 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.txtили Test .txt, это работает.Таким образом, комбинация специального символа ä и пробела, кажется, вызывает проблему.Обмен двойными кавычками на одинарные кавычки в этом случае ничего не меняет.

Я вполне уверен, что это необходимо для PowerShell, поскольку пример работает без проблем на моей машине с Linux.

Есть ликакой-то другой способ избежать специальных символов и / или пробелов, которые я не знаю?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Я нашел следующий обходной путь:

Я создаю временный файл из R, содержащий все необходимые команды, а затем запускаю этот временный файл, используя bash, который также включен в Cygwin.Таким образом я избавляюсь от проблемы, возникающей из-за различных кодировок в Windows и инструментов Linux от Cygwin.

0 голосов
/ 27 ноября 2018

Запуск из терминала Cygwin

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

В общем случае программа Cygwin не принимает пути Windows и надежно работает с путем POSIX

...