Запустите Total Commander из Баш на окнах

Я пытаюсь настроить псевдоним / функцию для вызова 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 ответа

Решение

Вы должны заключить в кавычки параметр $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/)"

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

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

function winPath { cygpath.exe  -wa -- "$1"; }
Другие вопросы по тегам