Эквивалент «открытой» OS X в Cygwin?

11

Я знаю, что это может быть немного странный вопрос, плюс тот факт, что я задаю его здесь. Причина в том, что всякий раз, когда я спрашиваю об этом пользователей Windows или даже обычных пользователей Cygwin, они, похоже, не понимают, зачем мне эта функциональность.

Для тех из вас, кто не использовал «open» в оболочке в Mac OS X, он работает так:

$ open somepic.jpg

$ open SomeFile.m

Таким образом, он смотрит на программу по умолчанию, связанную с файлом, и открывает его. Я хотел бы сделать то же самое из Cygwin. Любые идеи будут высоко оценены!

Т.К.
источник
Использование MobaXterm, эквивалентная команда Мака openявляется ... open. :) Я не очень много использовал Cygwin; Я предпочитаю MobaXterm.
Wildcard

Ответы:

18
$ cygstart theFile.ext

Откроется файл File.ext с приложением по умолчанию, которое вы установили для файлов .ext.

unclejamil
источник
Именно то, что мне было нужно. Буду вставлять:
ТК
2
псевдоним open = 'cygstart' в моем .bashrc
TK
1
@TK: Сладкий. Не стесняйтесь заходить снова, если у вас возникнут какие-либо проблемы с Cygwin. Я долгое время был в ловушке на Windows, поэтому я и Сигвин очень близко подобрались. Мы не приятели ... но мы научились терпеть друг друга. ;)
unclejamil
4

Для полноты, xdg-openв Linux играет ту же роль на стороне Linux.

Калеб
источник
1

Как уже упоминалось, лучший способ, вероятно cygstart. Вы можете добавить псевдоним в ваш .bashrc (или .zshrc или любой другой):

alias open='cygstart'

Но вы также можете сделать некоторые вещи с explorer.exe. Это, вероятно, не так хорошо, как, cygstartно если вы столкнетесь с какими-либо проблемами с этим подходом (или вам нужно использовать это с оболочкой Gash, а не с Cygwin), это вариант, о котором следует помнить.

До этого я использовал оболочку bash, которая поставляется с Git для Windows, и у меня было

alias open='explorer.exe'

в моем .bash_profile. Он будет открывать каталоги в проводнике Windows и открывать файлы в приложении по умолчанию (по определению Windows «по умолчанию»).

Однако у него есть ограничения. Так как explorer.exe ожидает использования в командной строке DOS (если вообще в командной строке), не ожидайте, что глобализация будет работать. Если, например, вы хотите открыть Gemfile, Vagrantfile, Cheffile и Rakefile одновременно, и вы набираете

open *file

Вы просто получите окно проводника Windows. Я не знаю, какая логика (!?) Здесь работает. Скорее всего, explorer.exe просто игнорирует все аргументы, так как не знает, что делать с несколькими аргументами.

cygstart тоже не очень умный, так как он открывает первый аргумент только при передаче нескольких аргументов, но, по крайней мере, открывает файл, а не текущий каталог.

иконоборец
источник