El comando "abrir" en Mac OS X me pareció muy útil en la línea de comandos. De "hombre abierto":
El
open
comando abre un archivo (o un directorio o URL), como si hubiera hecho doble clic en el icono del archivo. Si no se especifica el nombre de la aplicación, la aplicación predeterminada determinada a través de LaunchServices se usa para abrir los archivos especificados.
Es decir, si quiero abrir un archivo PDF con el visor de PDF predeterminado (resulta ser Vista previa), solo necesito hacer:
open my.pdf
Sin embargo, en Linux, para abrir un archivo PDF desde la línea de comandos, tuve que cavar para encontrar que el visor de PDF predeterminado es, por ejemplo, "evince" (¿quién lo habría adivinado?), Y luego
evince my.pdf
Entonces, ¿hay un equivalente simple del comando 'abrir' en la línea de comandos de Linux?
¡Gracias!
fuente
Respuestas:
Podrías probar
xdg-open
, la mayoría de las distribuciones de Linux lo tienen. Se abrirá la aplicación asociada predeterminada para su archivo.FYI https://portland.freedesktop.org/doc/xdg-open.html
fuente
open
, sin embargo, es que esto no abre el archivo / aplicación en segundo plano. Las aplicaciones de Linux parecen ser muy conversadoras y, a menudo, generan múltiples líneas de diagnósticos y advertencias directamente en su terminal (aunque realmente nada salió mal). Por lo general, tengo que hacer algo asíxdg-open <file> &> /dev/null &
. ¿Hay algo mejor que xdg-open a este respecto?&
no es necesario. En cuanto a las "múltiples líneas de diagnóstico", son de la aplicación en sí, no dexdg-open
. Si no desea ningún resultado, necesitaría&> /dev/null
incluso usarloevince
directamente (ejemplo de OP), por lo que su queja será nula.xdg-open
es de hecho el camino a seguir.xdg-open
culpa 's si ellos son hablador. Y suprimir tales mensajes debería ser una elección del usuario , no de xdg. Por lo tanto, es un vacío quejarse de pedir algo "mejor" quexdg-open
. Además, si Macopen
no tiene ninguna opción para enviar esos mensajes, diría queopen
es mucho peor que esoxdg-open
, ya que cuando usa la línea de comandos para iniciar archivos, generalmente está interesado en esa salida (de lo contrario, ¿por qué no hacer doble clic en el archivo? en un navegador como Nautilus?)alias open='xdg-open &>/dev/null'
produce aproximadamente el comportamiento deseado (aunque también se silenciarían los errores de xdg-open en sí (a diferencia del programa lanzado), lo que es indeseable).El equivalente que está buscando es
xdg-open
, que se puede usar de la misma manera que elopen
comando de OS X. Por ejemplo:Sin embargo, esto es realmente difícil de escribir de forma rápida y precisa. En su lugar, debe hacer un alias para xdg-open, lo que hace que el proceso sea mucho más rápido.
Por supuesto, puedes
open
usar un alias para que coincida con OS X (puedes elegir lo que quieras), pero personalmente, utilizo el corchete derecho (]
) para mi acceso directo por razones de velocidad. Para usar esto, agregue lo siguiente a su.bashrc
archivo:Luego, para abrir cualquier recurso, úselo como cualquiera de estos ejemplos:
Además, esto 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 anterior. Después de todo, el objetivo es la eficiencia. Y puede regresar y crear el mismo alias en OS X; lo dejo como ejercicio para el lector. :-)
fuente
xdg-open
abre la aplicación predeterminada de su sistema para el archivo. En su caso, los.url
archivos están configurados para abrirse en gedit. Si desea cambiar eso, haga clic con el botón derecho en el archivo en Nautilus y vaya a Propiedades> Abrir con para cambiar la aplicación predeterminada, yxdg-open
funcionará en consecuencia.Lo resolví yo mismo, así que pensé en escribir cómo lo hice, lo que es específicamente relevante para lo que Suan preguntó. Estos pasos le permiten simplemente escribir "abrir" y no cubrir su terminal con mensajes que no necesita:
Crear un script llamado
open
en~/bin
, el contenido es simplemente:Guarde y cierre el script, luego escriba "source .profile" (o .bash_profile si es relevante). Eso es así, escribir "abrir música" abrirá su carpeta de música en la GUI de nautilus y no debería ingresar nada en su terminal.
fuente
open
y póngalo en su RUTA (generalmente en$HOME/bin/open
)PATH
que/bin
. Por convención, si lo tiene$HOME/bin
, se agregaría al comienzo de la RUTA, antes de cualquier directorio del sistema. Comúnmente, esto lo hace tu.profile
o similar. Por ejemplo, el valor predeterminado.profile
en Ubuntu hace exactamente esto./dev/null
es un poco caprichoso; tal vez podría redirigir la salida$HOME/.xsession-errors
o algo así, de modo que los diagnósticos no se pierdan por completo en caso de que necesite solucionar algún problema.xdg-open
, este es un problema de shell.Tradicionalmente, puede usar el comando "ver". Que solo usa run-mailcap. Esto funcionará sin Gnome y X, etc.
fuente
run-mailcap
(y sus muchos alias) utiliza una base de datos de asociación de aplicaciones separada (y terriblemente desactualizada). Por ejemplo, en mi sistema, mientras que las.mp3
canciones se abren correctamente en VLC, los.txt
archivos se abren en menos (en lugar de gedit) y los.pdf
archivos simplemente no se abren. (Error: no se encontraron reglas de vista de correo para el tipo "application / pdf")run-mailcap
reconozca.xdg-open
usa internamentegvfs-open
(en sistemas Gnome como Ubuntu), que a su vez usa la especificación de mime-database de xdg, que usan muchas más aplicaciones.gimp
para mí. Yo me quedo conxdg-open
.less
x''Dgnomo abierto
fuente
xdg-open
si el usuario estaba en Gnome (ahora usagvfs-open
)Si tienes tus mimos configurados correctamente, puedes usarlos
mimeopen
. Echa un vistazo a su página de manual, ya que tiene algunas opciones útiles.fuente
En el entorno Gnome Desktop, uso el siguiente comando:
Esto es similar a "abierto". comando en Mac
fuente
.
lugar de "pwd
" C) si cambiapwd
para un archivo, el usuario aún necesitaría presionar ENTER después de que Nautilus abra D) Abrir Nautilus primero solo para que abra el archivo es una solución muy indirecta.