2008-11-05 16 views
176

He encontrado el comando "abrir" en Mac OS X muy útil en la línea de comandos. De "hombre abierto":Linux equivalente al comando "abrir" de Mac OS X

The open command opens a file (or a directory or URL), just as if you had double-clicked the file's icon. If no application name is specified, the default application as determined via LaunchServices is used to open the specified files.

Es decir, si quiero abrir un archivo PDF con el visor PDF predeterminado (pasa a ser vista previa), lo único que tiene que hacer:

open my.pdf 

En Linux, sin embargo, para abrir un archivo PDF desde la línea de comandos, tuve que buscar para encontrar el visor de PDF predeterminado, por ejemplo, "evince" (¿quién lo hubiera adivinado?) Y luego

evince my.pdf 

Entonces, ¿hay un simple equivalente al comando 'abrir' en t ¿La línea de comandos de Linux?

Gracias!

+6

¿Tal vez esta pregunta debería pasar a superuser.com? – quazgar

+1

El súper usuario parece inadecuado: ¿hay un StackOverflow para "usuarios normales" o posiblemente "programadores que quieran crear secuencias de comandos de otras aplicaciones", es decir, automatizar? –

+0

askubuntu podría caber. – Gopherkhan

Respuesta

195

Puedes probar xdg-open, la mayoría de las distribuciones de Linux lo tienen. Abrirá la aplicación asociada predeterminada para su archivo.

FYI https://portland.freedesktop.org/doc/xdg-open.html

+12

Sin embargo, una gran diferencia entre esto y 'abierto' es que esto no abre el archivo/aplicación en segundo plano. Las aplicaciones de Linux parecen ser muy habladas y a menudo generan múltiples líneas de diagnósticos y advertencias directamente en su terminal (aunque nada salió realmente mal). Por lo general, tengo que hacer algo como 'xdg-open &>/dev/null &' en su lugar. ¿Hay algo mejor que xdg-open en este sentido? – Suan

+11

@Suan: Abre la aplicación en el "fondo", separada de la terminal, de manera que puede continuar trabajando en la terminal tan pronto como se lance la aplicación. Entonces, el 'y' final no es necesario. En cuanto a las "múltiples líneas de diagnóstico", esas son de la aplicación en sí, no de 'xdg-open'. Si no quieres ningún resultado, necesitarías '&>/dev/null' incluso usando' evince' directamente (ejemplo de OP), por lo que tu queja es nula. 'xdg-open' es de hecho el camino a seguir. – MestreLion

+13

@MestreLion No creo que la queja sea completamente nula, ya que la apertura de Mac no da como resultado que la salida de la aplicación se repita en la terminal. –

3

gnome-abierta

+5

gnome-open ahora está en desuso, y además ya estaba usado internamente por 'xdg-open' si el usuario estaba en Gnome (ahora usa' gvfs-open') – MestreLion

66

El equivalente que busca es xdg-open, que se puede utilizar de la misma forma que el comando de OS X open. Por ejemplo:

xdg-open ~/Documents/Chubby_Bubbies.odt 

Sin embargo, esto es realmente difícil de escribir de forma rápida y precisa. En su lugar, debe crear un alias para xdg-open, lo que hace que el proceso sea mucho más rápido.

Por supuesto, se puede crear un alias para open para que coincida con OS X (usted puede escoger lo que quiera), pero personalmente, utilizar el corchete derecho (]) para mi acceso directo por razones de velocidad. Para utilizar esto, añada lo siguiente a su .bashrc archivo:

alias ']'='xdg-open' 

Entonces, para abrir cualquier recurso, lo utilizan como cualquiera de estos ejemplos:

] www.google.com 
] file.txt 
] ~/Pictures 
] ssh://myserver.local/home/jeremy 

Además, este le permite abrir un explorador de archivos (por ejemplo Nautilus) en el directorio actual:

] . 

por experiencia he encontrado que los alias de una letra funcionan mejor para el acceso directo anteriormente. Después de todo, el objetivo es la eficiencia. Y puede regresar y crear el mismo alias en OS X; lo dejo como ejercicio al lector. :-)

+24

hice un alias de 'abrir' a 'xdg-open' para que sea coherente tanto en Linux como en Mac. –

+1

¡Ejemplo fantástico! – Gerstmann

+0

Eso es bueno pero no genial, intenté abrir un archivo .url y lo abrí en gedit. – sorin

10

Tradicionalmente, puede utilizar el comando "ver". Que solo usa run-mailcap. Esto funcionará sin Gnome y X, etc

man see 
+2

El problema es 'run-mailcap' (y sus muchos alias) utiliza una base de datos de asociación de aplicaciones separada (y terriblemente obsoleta). Por ejemplo, en mi sistema, mientras que las canciones '.mp3' se abren correctamente en VLC, los archivos' .txt' se abren en menos archivos (en lugar de gedit) y '.pdf' ¡simplemente no se abren! (Error: no se encontraron reglas de "vista" de mailcap para el tipo "application/pdf") – MestreLion

+1

Parece que funciona aquí. –

+0

Como dije, depende de cada sistema. Pocas aplicaciones se registran de una manera que 'run-mailcap' las reconoce. 'xdg-open' internamente usa' gvfs-open' (en sistemas Gnome como Ubuntu), que a su vez usa la especificación mime-database de xdg, que usan muchas más aplicaciones. – MestreLion

11

acabo resolvieron esto a mí mismo por lo que pensé que iba a escribir cómo lo hice, que es específicamente relevante para lo que pidió Suan. Estos pasos permiten sólo tiene que teclear "abierto" y no su terminal cubierto de mensajes que no es necesario:

Crear un script llamado open en ~/bin, el contenido es simplemente:

xdg-open "$1" &> /dev/null & 

Guardar y cerrar la secuencia de comandos, luego escriba "source .profile" (o .bash_profile si corresponde). Eso es así, escribir "abrir música" abrirá su carpeta de música en la GUI de nautilus y no debe ingresar nada en su terminal.

ambiente
+0

¿Qué pasa con el alias y la ubicación extraña? Simplemente llame al script 'open' y póngalo en su PATH (generalmente en '$ HOME/bin/open') – tripleee

+0

En mi máquina (ubuntu 11.10) si agrega un script llamado 'abierto' en su ruta, e intente De esa forma, está/over/over/over/no abierto. Así que no puedo encontrar la forma de llegar al trabajo sin un alias. – Anake

+0

El truco es tener su propia secuencia de comandos en un directorio que viene antes en su 'PATH' que'/bin'. Por convención, si tiene '$ HOME/bin' se agregaría al comienzo de la RUTA, antes de cualquier directorio del sistema. Comúnmente, esto es hecho por su '.profile' o similar. Por ejemplo, el '.profile' predeterminado en Ubuntu hace exactamente esto. – tripleee

-2

Bajo escritorio Gnome, yo uso el siguiente comando:

nautilus `pwd` & 

Esto es similar a la "abierta". mando en Mac

+8

Esta respuesta tiene varios problemas: A) Abre el directorio actual, no el archivo, como solicitó el usuario. B) puedes usar '.' en lugar de' '' pwd'' "C) si cambias' pwd' para un archivo, el usuario todavía necesitaría presionar ENTER luego de que Nautilus abra D) Abrir nautilus primero solo para * it * abrir el archivo es una solución muy indirecta. – MestreLion

1

Si usted tiene su configuración mimos correctamente, puede utilizar mimeopen. Echa un vistazo a su página man, ya que tiene algunas opciones útiles.

+0

Sería bueno si se ampliara esta respuesta. Me interesaría ver cómo funciona esto – Magnus

Cuestiones relacionadas