Я использую Windows XP и Cygwin. Есть ли способ создать какую-то символическую ссылку, чтобы, если не-Cygwin-программа передавала /cygdrive /c в качестве аргумента командной строки, она искала в каталоге c:\ тот файл / каталог, который ей нужен?

2 ответа2

3

Есть способ создать символические ссылки в Windows, загрузить инструмент Junction от Microsoft и использовать его для создания символической ссылки (в NTFS они реализованы как точки соединения). А затем создайте каталог \cygdrive \c и создайте точку соединения от него до c:\

md \cygdrive\c
junction \cygdrive\c \

Теперь это может или не может работать, у меня не установлен Cygwin. Это зависит от:

  1. Программы, интерпретирующие прямую косую черту в /cygdrive /c как обратную косую черту (что могут делать некоторые)
  2. Установив рабочий каталог на диск с символическими ссылками, поскольку пути, начинающиеся с \, относятся к текущему диску.
0

Если вы вызываете программы, не подозревающие о cygwin, из bash cygwin и передаете пути в качестве аргументов, таких как

$ windowsProgram.exe "pathArg1" "pathArg2"

тогда, возможно, преобразовать каждый pathArg в "$(cygpath -w pathArg)", то есть

$ windowsProgram.exe "$(cygpath -w pathArg1)" "$(cygpath -w pathArg2)"

, Некрасиво, но должно работать?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .