2

Я пытаюсь настроить псевдоним / функцию для вызова Total Commander из bash (MINGW) в Windows. Пока все мои попытки провалились, закрывается

function tc() {
  dir="$1"
  if [ "$dir" == "" ]; then
    dir="."
  fi
  /c/TotalCmd/totalcmd.exe /O /L="`cygpath -wa $dir`" /R="`cygpath -wa .`" &

}

Это решение имеет один недостаток: TC открывается с заданными каталогами, но пути имеют дополнительные / в них. Это заставляет TC переходить в root, когда я пытаюсь перейти на один каталог вверх.

Знаете ли вы, как правильно настроить этот псевдоним? Спасибо!

2 ответа2

1

Вы должны заключить в кавычки параметр $ dir, иначе вы можете передать более двух строк в качестве аргументов cygpath (1st -wa, 2nd /path /). Это будет проблемой только тогда, когда параметр $ dir содержит каталог, путь которого содержит пробелы.

IE

cygpath -wa "~/x/hello world"

это не то же самое, что

cygpath -wa ~/x/ привет мир

Это должно работать для вас (как это было для меня):

jaroslav@wraptor ~
$ function winPath { cygpath.exe  -wa -- "$1"; }
$ FreeCommander.exe C: "$(winPath /cygdrive/m/muzica/_christian_liturgy/\
    Athonite\ Fathers\ of\ St.\ Anthony\'s\ Greek\ Orthodox\ Monastery\ -\ \
    Vigil\ of\ St.\ Anthony/)"
0

Так что решение, которое работает, спасибо Ярослав!

function tc() {
  dir="$1"
  if [ "$dir" == "" ]; then
    dir="."
  fi
  /c/totalcmd/totalcmd.exe /O L="`winPath $dir`"
}

function winPath { cygpath.exe  -wa -- "$1"; }

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