¿Un equivalente a OS X "abierto" en Cygwin?

11

Sé que esta puede ser una pregunta un poco extraña, además del hecho de que la estoy preguntando aquí. La razón es que cada vez que le pregunto a la gente de Windows sobre esto, o incluso a los usuarios habituales de Cygwin, no parecen entender por qué necesito esta funcionalidad.

Para aquellos de ustedes que no han usado "abrir" en el shell en Mac OS X, funciona así:

$ abrir somepic.jpg

$ abrir SomeFile.m

Por lo tanto, mira el programa predeterminado asociado con el archivo y lo abre. Me gustaría hacer lo mismo desde Cygwin. Cualquier idea sería muy apreciada!

TK
fuente
Usando MobaXterm, el comando equivalente a Mac openes ... open. :) No he usado mucho a Cygwin; Prefiero MobaXterm.
Comodín

Respuestas:

18
$ cygstart theFile.ext

Esto abrirá theFile.ext con la aplicación predeterminada que ha configurado para archivos .ext.

unclejamil
fuente
Exactamente lo que necesitaba. Pondrá un:
TK
2
alias abierto = 'cygstart' en mi .bashrc
TK
1
@TK: Dulce. Siéntase libre de regresar nuevamente si tiene más problemas con Cygwin. He estado atrapado en la tierra de Windows durante mucho tiempo, así que Cygwin y yo nos hemos acercado mucho. No somos amigos ... pero hemos aprendido a tolerarnos. ;)
unclejamil
4

Para completar, xdg-openen Linux juega el mismo papel en el lado de Linux.

Caleb
fuente
1

Como se mencionó, la mejor manera es probablemente cygstart. Puede agregar un alias a su .bashrc (o .zshrc o lo que sea):

alias open='cygstart'

Pero también puedes hacer algunas cosas con explorer.exe. Probablemente no sea tan bueno, cygstartpero si tiene algún problema con ese enfoque (o necesita usar esto con el shell bash de Git en lugar de Cygwin) es una opción a tener en cuenta.

Antes, he estado usando el shell bash que se incluye con Git para Windows, y he tenido

alias open='explorer.exe'

en mi .bash_profile. Abriría directorios en el Explorador de Windows y abriría archivos en la aplicación predeterminada (según la definición de "predeterminado" de Windows).

Sin embargo, tiene limitaciones. Dado que explorer.exe espera ser utilizado en un indicador de DOS (si es que está en una línea de comando), no espere que funcione el globbing. Si, por ejemplo, desea abrir su Gemfile, Vagrantfile, Cheffile y Rakefile a la vez, y escribe

open *file

Solo obtendrá una ventana del Explorador de Windows. No sé qué lógica (!?) Está trabajando aquí. Lo más probable es que explorer.exe simplemente ignore todos los argumentos, ya que no sabe qué hacer con múltiples argumentos.

cygstart tampoco es muy inteligente, ya que solo abre el primer argumento cuando se pasan varios argumentos, pero al menos abre un archivo, en lugar del directorio actual.

iconoclasta
fuente