Odpowiednik „otwartego” systemu OS X w Cygwin?

11

Wiem, że to może być nieco dziwne pytanie oraz fakt, że zadaję to tutaj. Powodem jest to, że ilekroć pytam o to ludzi Windows, a nawet zwykłych użytkowników Cygwin, wydaje się, że nie rozumieją, dlaczego potrzebuję tej funkcji.

Dla tych z was, którzy nie używali „open” w powłoce w Mac OS X, działa to tak:

$ open somepic.jpg

$ open SomeFile.m

Spogląda więc na domyślny program powiązany z plikiem i otwiera go. Chciałbym zrobić to samo z poziomu Cygwin. Wszelkie pomysły będą mile widziane!

TK
źródło
Korzystanie MobaXterm, odpowiednik polecenia Mac openjest ... open. :) Nie korzystałem zbyt często z Cygwin; Wolę MobaXterm.
Wildcard

Odpowiedzi:

18
$ cygstart theFile.ext

Spowoduje to otwarcie pliku.ext z domyślną aplikacją ustawioną dla plików .ext.

unclejamil
źródło
Dokładnie to, czego potrzebowałem. Umieści:
TK
2
alias open = 'cygstart' w moim .bashrc
TK
1
@TK: Sweet. Jeśli napotkasz więcej problemów z cygwinem, możesz wpaść ponownie. Długo byłem uwięziony w krainie Windows, więc ja i Cygwin zbliżyliśmy się naprawdę. Nie jesteśmy kumplami ... ale nauczyliśmy się wzajemnie tolerować. ;)
unclejamil
4

Dla kompletności, xdg-openw systemie Linux odgrywa tę samą rolę po stronie systemu Linux.

Caleb
źródło
1

Jak wspomniano, prawdopodobnie najlepszym sposobem jest cygstart. Możesz dodać alias do swojego .bashrc (lub .zshrc lub cokolwiek):

alias open='cygstart'

Ale możesz też zrobić kilka rzeczy explorer.exe. Prawdopodobnie nie jest tak dobry, cygstartale jeśli napotkasz jakiekolwiek problemy z tym podejściem (lub musisz użyć tego z powłoką Bash Gita zamiast Cygwina), warto o tym pamiętać.

Wcześniej korzystałem z powłoki bash, która jest dostarczana z Git dla Windows, i miałem

alias open='explorer.exe'

w moim .bash_profile. Otworzy katalogi w Eksploratorze Windows i pliki w domyślnej aplikacji (według definicji „domyślnej” systemu Windows).

Ma jednak ograniczenia. Ponieważ explorer.exe ma być używany w wierszu poleceń DOS (jeśli w ogóle w wierszu poleceń), nie oczekuj, że globbing zadziała. Jeśli na przykład chcesz otworzyć jednocześnie swój Gemfile, Vagrantfile, Cheffile i Rakefile, a następnie wpiszesz

open *file

Dostaniesz tylko okno Eksploratora Windows. Nie wiem, jaka jest tutaj logika (!?). Najprawdopodobniej explorer.exe po prostu ignoruje wszystkie argumenty, ponieważ nie wie, co zrobić z wieloma argumentami.

cygstart nie jest też zbyt inteligentny, ponieważ otwiera tylko pierwszy argument po przekazaniu wielu argumentów, ale przynajmniej otwiera plik, a nie bieżący katalog.

ikonoklasta
źródło