Я использую Windows XP и Cygwin. Есть ли способ создать какую-то символическую ссылку, чтобы, если не-Cygwin-программа передавала /cygdrive /c в качестве аргумента командной строки, она искала в каталоге c:\ тот файл / каталог, который ей нужен?
2 ответа
3
Есть способ создать символические ссылки в Windows, загрузить инструмент Junction от Microsoft и использовать его для создания символической ссылки (в NTFS они реализованы как точки соединения). А затем создайте каталог \cygdrive \c и создайте точку соединения от него до c:\
md \cygdrive\c
junction \cygdrive\c \
Теперь это может или не может работать, у меня не установлен Cygwin. Это зависит от:
- Программы, интерпретирующие прямую косую черту в /cygdrive /c как обратную косую черту (что могут делать некоторые)
- Установив рабочий каталог на диск с символическими ссылками, поскольку пути, начинающиеся с \, относятся к текущему диску.
0
Если вы вызываете программы, не подозревающие о cygwin, из bash cygwin и передаете пути в качестве аргументов, таких как
$ windowsProgram.exe "pathArg1" "pathArg2"
тогда, возможно, преобразовать каждый pathArg в "$(cygpath -w pathArg)", то есть
$ windowsProgram.exe "$(cygpath -w pathArg1)" "$(cygpath -w pathArg2)"
, Некрасиво, но должно работать?