Um equivalente ao OS X's "aberto" no Cygwin?

8

Eu sei que esta pode ser uma pergunta um pouco estranha, além do fato de que estou perguntando aqui. A razão é que sempre que eu pergunto ao pessoal do Windows sobre isso, ou até mesmo usuários regulares do Cygwin, eles não parecem entender por que eu preciso dessa funcionalidade.

Para aqueles que não usaram "open" no shell do Mac OS X, funciona assim:

$ open somepic.jpg

$ open SomeFile.m

Então, ele verifica o programa padrão associado ao arquivo e o abre. Eu gostaria de fazer o mesmo de dentro do Cygwin. Qualquer idéia seria muito apreciada!

    
por T.K. 18.08.2011 / 15:00

3 respostas

17
$ cygstart theFile.ext

Isso abrirá o arquivo Arquivo.ext com o aplicativo padrão que você definiu para os arquivos .ext.

    
por 18.08.2011 / 15:11
4

Para completar, xdg-open no Linux desempenha o mesmo papel no lado do Linux.

    
por 18.08.2011 / 22:52
1

Como mencionado, a melhor maneira é provavelmente cygstart . Você pode adicionar um alias ao seu .bashrc (ou .zshrc ou qualquer outro):

alias open='cygstart'

Mas você também pode fazer algumas coisas com explorer.exe . Provavelmente não é tão bom quanto cygstart , mas se você encontrar algum problema com essa abordagem (ou se precisar usar isso com o shell bash do Git em vez do Cygwin), é uma opção a ter em mente.

Antes eu já estava usando o shell bash que vem com o Git para Windows, e eu tive

alias open='explorer.exe'

no meu .bash_profile. Ele abriria diretórios no Windows Explorer e abriria os arquivos no aplicativo padrão (pela definição do Windows de "padrão").

Tem limitações, no entanto. Como o explorer.exe espera ser usado em um prompt do DOS (se estiver em uma linha de comando), não espere que o globbing funcione. Se, por exemplo, você quiser abrir seu Gemfile, Vagrantfile, Cheffile e Rakefile de uma só vez, e você digita

open *file

Você só vai ter uma janela do Windows Explorer. Eu não sei qual lógica (!?) Está funcionando aqui. O mais provável explorer.exe é apenas ignorar todos os argumentos, uma vez que não sabe o que fazer com múltiplos argumentos.

cygstart também não é muito inteligente, pois só abre o primeiro argumento quando passa vários argumentos, mas pelo menos abre um arquivo, em vez do diretório atual.

    
por 03.08.2012 / 19:20

Tags