Un équivalent à «ouvert» d'OS X dans Cygwin?

11

Je sais que cela peut être une question un peu étrange, plus le fait que je la pose ici. La raison en est que chaque fois que je pose des questions aux utilisateurs de Windows, ou même aux utilisateurs réguliers de Cygwin, ils ne semblent pas comprendre pourquoi j'ai besoin de cette fonctionnalité.

Pour ceux d'entre vous qui n'ont pas utilisé "open" dans le shell sous Mac OS X, cela fonctionne comme ceci:

$ open somepic.jpg

$ open SomeFile.m

Il examine donc le programme par défaut associé au fichier et l'ouvre. J'aimerais faire la même chose depuis Cygwin. Toutes les idées seraient très appréciées!

TK
la source
En utilisant MobaXterm, la commande équivalente à Mac openest ... open. :) Je n'ai pas beaucoup utilisé Cygwin; Je préfère MobaXterm.
Wildcard

Réponses:

18
$ cygstart theFile.ext

Cela ouvrira theFile.ext avec l'application par défaut que vous avez définie pour les fichiers .ext.

onclejamil
la source
Exactement ce dont j'avais besoin. Mettra un:
TK
2
alias open = 'cygstart' dans mon .bashrc
TK
1
@TK: Sweet. N'hésitez pas à revenir si vous rencontrez d'autres problèmes avec cygwin. Je suis pris au piège dans Windows Land depuis longtemps, donc Cygwin et moi sommes devenus très proches. Nous ne sommes pas amis ... mais nous avons appris à nous tolérer. ;)
unclejamil
4

Pour être complet, xdg-opensous Linux joue à peu près le même rôle du côté Linux.

Caleb
la source
1

Comme mentionné, le meilleur moyen est probablement cygstart. Vous pouvez ajouter un alias à votre .bashrc (ou .zshrc ou autre):

alias open='cygstart'

Mais vous pouvez aussi faire certaines choses avec explorer.exe. Ce n'est probablement pas aussi bon que cygstartsi vous rencontrez des problèmes avec cette approche (ou si vous devez l'utiliser avec le shell bash de Git plutôt qu'avec Cygwin), c'est une option à garder à l'esprit.

Avant, j'utilisais le shell bash fourni avec Git pour Windows, et j'ai eu

alias open='explorer.exe'

dans mon .bash_profile. Il ouvrirait des répertoires dans l'Explorateur Windows et ouvrirait des fichiers dans l'application par défaut (selon la définition de Windows de "par défaut").

Il a cependant des limites. Étant donné qu'explorer.exe s'attend à être utilisé à une invite DOS (si sur une ligne de commande), ne vous attendez pas à ce que le globbing fonctionne. Si, par exemple, vous souhaitez ouvrir simultanément votre Gemfile, Vagrantfile, Cheffile et Rakefile, et que vous saisissez

open *file

Vous n'aurez qu'une fenêtre de l'Explorateur Windows. Je ne sais pas quelle logique (!?) Est à l'œuvre ici. Explorer.exe ignore probablement tous les arguments, car il ne sait pas quoi faire avec plusieurs arguments.

cygstart n'est pas très intelligent non plus, car il ouvre uniquement le premier argument lorsque plusieurs arguments sont passés, mais au moins il ouvre un fichier, plutôt que le répertoire actuel.

iconoclaste
la source