Как отформатировать путь dos к пути unix в командной строке cygwin

При использовании Cygwin я часто копирую путь Windows и вручную изменяю все слэши в формате Unix. Например, если я использую Cygwin и мне нужно изменить каталог, я ввожу:

cd C:\windows\path 

затем отредактируйте это на

cd C:/windows/path  

(Как правило, путь намного длиннее этого). Есть ли способ использовать sed или что-то еще, чтобы сделать это автоматически? Например, я попробовал:

echo C:\windows\path|sed 's|\\|g'  

но получил следующую ошибку:

sed: -e expression #1, char 7: unterminated `s' command

Моя цель - уменьшить ввод текста, поэтому, возможно, я мог бы написать программу, которую я мог бы назвать. В идеале я бы напечатал:

conversionScript cd C:/windows/path 

и это будет эквивалентно типу:

cd C:\windows\path

Ответы

Ответ 1

Спасибо всем. Очевидно, все, что мне нужно, это одинарные кавычки по пути:

cd 'C:\windows\path'

и Cygwin преобразует его. Cygpath тоже будет работать, но также нужны одинарные кавычки, чтобы оболочка не могла использовать символы обратной косой черты.

Ответ 2

Читайте о команде cygpath.

somecommand `cygpath -u WIN_PATH`

например.

Ответ 3

cmd.exe не нравится одиночные кавычки. Вы должны использовать двойные кавычки

C:\test>echo C:\windows\path|sed "s|\\|/|g"
C:/windows/path

Ответ 4

Вы заменяете обратную косую черту с помощью утилиты unix sed

Ниже я использую звездочку "*" для разделения полей в директиве s

     sed "s*\\\*/*g"

Трюк состоит в том, чтобы использовать один обратный слэш больше, чем вы могли подумать