Saltar al contenido

comando `abrir` para abrir un archivo en una aplicación

Nuestro grupo de especialistas pasados varios días de trabajo y recopilar de información, dieron con la respuesta, queremos que te sea de gran utilidad para tu proyecto.

Solución:

El propósito principal de OS X open comando es abrir un archivo en la aplicación asociada. El equivalente de eso en unices modernos que no son OSX es xdg-open.

xdg-open index.html

xdg-open no tiene un equivalente de OSX open -a para abrir un archivo en una aplicación específica. Esto se debe a que la forma normal de abrir un archivo en una aplicación es simplemente escribir el nombre de la aplicación seguido del nombre del archivo. Más precisamente, debe escribir el nombre del programa ejecutable que implementa la aplicación.

sublime_text index.html

Linux, al igual que otros sistemas Unix (pero no, que yo sepa, las partes que no son Unixy de OS X) administra el software al rastrearlo con un administrador de paquetes y coloca los archivos individuales donde se usan. Por ejemplo, todos los programas ejecutables están en un pequeño conjunto de directorios y todos esos directorios se enumeran en el PATH variable; correr sublime_text busca un archivo llamado sublime_text en los directorios listados en PATH. OS X necesita un nivel adicional de indirección, a través de open -a, para manejar aplicaciones que se desempaquetan en un único árbol de directorios y se registran en una base de datos de aplicaciones. Linux no tiene ninguna base de datos de aplicaciones, pero está organizada de tal manera que no la necesita.

Si ejecuta el comando sublime_text shell no funciona para usted, entonces Sublime Text no se ha instalado correctamente. Nunca lo he usado y, aparentemente, viene como un archivo tar, no como un paquete de distribución (por ejemplo, deb o rpm), por lo que es posible que necesite realizar un paso de instalación adicional. Es realmente el trabajo de los creadores de Sublime Text hacer que esto sea automático, pero si no lo han hecho, probablemente pueda hacerlo usted mismo ejecutando el comando

sudo -s …/sublime_text /usr/local/bin

Reemplazar por el camino donde el sublime_text ejecutable es, por supuesto.

los open comando que encontraste es un nombre antiguo para el openvt comando (algunas distribuciones de Linux solo lo incluyen bajo el nombre openvt). los openvt El comando crea una nueva consola virtual, que solo puede ser ejecutada por root y no se usa muy a menudo en este siglo, ya que la mayoría de las personas solo trabajan en un entorno de ventana gráfica.

No mencionas el sistema operativo que estás usando.

En algunas distribuciones de Linux, el open comando es un enlace simbólico a la
openvt comando que abre un binario en una nueva consola virtual. Eso aparentemente no es lo que quieres. De hecho, sus mensajes de error indican que invocó el openvt dominio. Este comando espera un programa binario (un ejecutable) como argumento.

Supongo que te refieres xdg-open que, a diferencia de openvt, no espera un ejecutable como argumento, sino un archivo que está asociado con un programa y abre el archivo con el programa. Puede pasar archivos y URL como argumentos.

Por lo tanto xdg-open index.html debe abrir el archivo en su navegador,
xdg-open image.png debe abrir el archivo en su visor de imágenes, etc.

Aunque la gente a menudo nombra xdg-open como emular la funcionalidad de openMac OS open es un poco diferente porque 1. no redirige nada desde stdout/stedrr y 2. separa lo que quieras ejecutar desde la terminal (que es casi siempre lo que quieres cuando inicias aplicaciones GUI para que no tengas terminales por ahí )

Para resolver esto, se me ocurrió un equivalente adecuado utilizando algunas herramientas GNU estándar (la sintaxis es cáscara de pez, pero la conversión a bash es trivial):

function open
    for i in $argv
        setsid nohup xdg-open $i > /dev/null 2> /dev/null
    end
end

Adicional:

Para aquellos que usan bash shell, aquí está la función:

open ()

    for i in $*
    do
        setsid nohup xdg-open $i > /dev/null 2> /dev/null
    done

Comentarios y calificaciones

Si te ha resultado de utilidad nuestro post, sería de mucha ayuda si lo compartes con más desarrolladores de este modo contrubuyes a difundir nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *