Ein Äquivalent zu OS X "offen" in Cygwin?

11

Ich weiß, dass dies eine etwas seltsame Frage sein kann, plus die Tatsache, dass ich sie hier stelle. Der Grund ist, dass wenn ich Windows-Leute danach frage oder sogar normale Cygwin-Benutzer, sie nicht verstehen, warum ich diese Funktionalität brauche.

Für diejenigen unter Ihnen, die in Mac OS X nicht "open" in der Shell verwendet haben, funktioniert dies folgendermaßen:

$ open somepic.jpg

$ open SomeFile.m

Es wird also das der Datei zugeordnete Standardprogramm angezeigt und geöffnet. Ich würde gerne dasselbe in Cygwin tun. Irgendwelche Ideen wären sehr dankbar!

TK
quelle
Mit MobaXterm, der entsprechende Befehl zu Mac openist ... open. :) Ich habe Cygwin nicht viel benutzt; Ich bevorzuge MobaXterm.
Wildcard

Antworten:

18
$ cygstart theFile.ext

Dadurch wird die Datei "Datei.ext" mit der Standard-App geöffnet, die Sie für .ext-Dateien festgelegt haben.

Onkel Jamil
quelle
Genau das, was ich brauchte. Wird ein setzen:
TK
2
alias open = 'cygstart' in meiner .bashrc
TK
1
@TK: Süß. Sie können jederzeit wieder vorbeischauen, wenn Sie auf weitere Cygwin-Probleme stoßen. Ich bin schon lange im Windows-Land gefangen, also sind ich und Cygwin uns sehr nahe gekommen. Wir sind keine Freunde ... aber wir haben gelernt, einander zu tolerieren. ;)
Onkeljamil
4

Der Vollständigkeit xdg-openhalber spielt Linux unter Linux auf Linux-Seite fast die gleiche Rolle.

Caleb
quelle
1

Wie bereits erwähnt, ist der beste Weg wahrscheinlich cygstart. Sie können Ihrem .bashrc (oder .zshrc oder was auch immer) einen Alias ​​hinzufügen:

alias open='cygstart'

Sie können aber auch einige Dinge damit tun explorer.exe. Es ist wahrscheinlich nicht so gut wie, cygstartaber wenn Sie auf Probleme mit diesem Ansatz stoßen (oder dies mit Gits Bash-Shell anstelle von Cygwin verwenden müssen), sollten Sie dies berücksichtigen.

Bisher habe ich die Bash-Shell verwendet, die mit Git für Windows geliefert wird, und das hatte ich auch

alias open='explorer.exe'

in meinem .bash_profile. Es würde Verzeichnisse im Windows Explorer öffnen und Dateien in der Standardanwendung öffnen (gemäß der Windows-Definition von "Standard").

Es gibt jedoch Einschränkungen. Da explorer.exe voraussichtlich an einer DOS-Eingabeaufforderung verwendet wird (wenn überhaupt an einer Befehlszeile), sollten Sie nicht damit rechnen, dass Globbing funktioniert. Wenn Sie beispielsweise Gemfile, Vagrantfile, Cheffile und Rakefile gleichzeitig öffnen möchten, geben Sie ein

open *file

Sie erhalten nur ein Windows Explorer-Fenster. Ich weiß nicht, welche Logik (!?) Hier am Werk ist. Höchstwahrscheinlich ignoriert explorer.exe nur alle Argumente, da es nicht weiß, was mit mehreren Argumenten zu tun ist.

cygstart ist auch nicht sehr intelligent, da es nur das erste Argument öffnet, wenn mehrere Argumente übergeben werden, aber zumindest eine Datei anstelle des aktuellen Verzeichnisses.

Bilderstürmer
quelle