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!
open
jest ...open
. :) Nie korzystałem zbyt często z Cygwin; Wolę MobaXterm.Odpowiedzi:
Spowoduje to otwarcie pliku.ext z domyślną aplikacją ustawioną dla plików .ext.
źródło
Dla kompletności,
xdg-open
w systemie Linux odgrywa tę samą rolę po stronie systemu Linux.źródło
Jak wspomniano, prawdopodobnie najlepszym sposobem jest
cygstart
. Możesz dodać alias do swojego .bashrc (lub .zshrc lub cokolwiek):Ale możesz też zrobić kilka rzeczy
explorer.exe
. Prawdopodobnie nie jest tak dobry,cygstart
ale 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
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
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.źródło