HOWTO · Bash
Abrir archivo HTML usando Bash
Este tutorial explica cómo abrir un archivo HTML local existente desde Bash en macOS y Linux, usando el navegador predeterminado o uno elegido.
En esta página
Para abrir desde Bash un archivo HTML local que ya existe, usa el comando de tu sistema operativo: macOS incluye open, mientras que muchos entornos de escritorio Linux ofrecen xdg-open. Cada comando pide al escritorio que abra el archivo con la aplicación asociada, normalmente el navegador predeterminado. Estos comandos abren un archivo local; no inician un servidor web ni publican la página.
Abrir un archivo HTML con el navegador predeterminado
Primero, cambia al directorio que contiene la página o usa directamente su ruta. En macOS, open ./index.html abre un archivo del directorio actual. En Linux, xdg-open ./index.html ofrece el mismo comportamiento con la aplicación predeterminada. Sustituye index.html por el nombre de tu archivo. Si está en otro directorio, indica una ruta absoluta, como /home/alex/site/index.html, o una ruta relativa al directorio actual, como ../site/index.html.
El comando de apertura entrega la ruta al entorno de escritorio y devuelve el control al shell; no muestra la página renderizada como salida de la terminal. El navegador muestra el HTML. La aplicación concreta depende de la asociación de archivos configurada en ese equipo.
Abrir un archivo HTML en macOS
En macOS, el comando integrado open usa la aplicación asociada al tipo de archivo. Ejecuta open ./index.html desde el directorio que contiene el archivo o indica la ruta completa; por ejemplo, open "$HOME/Sites/demo/index.html". Al poner una ruta entre comillas, los espacios y otros caracteres del shell no se interpretan como separadores. También puedes escribir open y arrastrar el archivo desde Finder hasta la ventana de Terminal para insertar su ruta; después, pulsa Retorno.
Para usar una aplicación instalada en particular, escribe open -a, seguido del nombre de la aplicación y la ruta del archivo. Por ejemplo, open -a "Google Chrome" ./index.html pide a macOS que abra la página en Google Chrome. Puedes usar del mismo modo el nombre que aparece para otro navegador instalado, como Firefox. Esta sintaxis es propia de macOS; open -a no es el comando de Linux que se muestra a continuación.
Abrir un archivo HTML en Linux
En una sesión gráfica de Linux, xdg-open ./index.html pide al escritorio que abra la página con la aplicación predeterminada asociada a los archivos HTML. Indica una ruta absoluta o relativa según corresponda y ponla entre comillas si contiene espacios: xdg-open "$HOME/sites/my demo/index.html".
xdg-open suele incluirse en paquetes de integración con el escritorio, pero no está garantizado que esté instalado o que resulte útil en todos los entornos Linux. Es posible que un servidor sin interfaz gráfica, un contenedor o una shell remota no tenga un navegador que abrir. Instalar Homebrew en macOS no convierte xdg-open en el comando estándar de macOS; allí usa open.
Elegir un navegador y abrir varios archivos
En macOS, open -a "Google Chrome" ./one.html ./two.html solicita que ambos archivos se abran en Google Chrome. Si hace falta, sustituye el nombre de la aplicación por el de un navegador instalado. La misma forma de open -a sirve para un archivo o para varias rutas.
En Linux, xdg-open está pensado para abrir una URL o un archivo con la aplicación de escritorio predeterminada. No ofrece una opción portátil para elegir un navegador por el nombre que aparece en pantalla. Si necesitas un navegador concreto, usa el ejecutable de línea de comandos de ese navegador, siempre que esté instalado y disponible en tu PATH; su nombre y sus opciones varían según la distribución y el navegador. Los modos propios de cada navegador, como la navegación privada, también usan opciones específicas, que no son intercambiables con las de open o xdg-open.
Comprobar las rutas y la disponibilidad de los comandos
Una ruta relativa se interpreta desde el directorio de trabajo actual del shell, no desde el directorio donde se encuentra el artículo o el navegador. Ejecuta pwd para ver el directorio actual. Usa ls para consultar sus archivos o cambia al directorio correcto con cd; después, pasa el nombre del archivo HTML al comando de apertura correspondiente a tu sistema. Si la ruta contiene espacios, ponla entera entre comillas. Comprueba que el archivo exista y que la escritura, incluidas las mayúsculas, coincida con la ruta indicada.
Para comprobar el archivo HTML que vas a abrir, prueba directamente la ruta que usarás. Asigna a target la ruta que pasarás a open o xdg-open y ponla entre comillas para que los espacios formen parte del nombre. Este ejemplo muestra un resultado claro y termina correctamente tanto si el archivo existe como si no. En la ejecución proporcionada, la ruta predeterminada no existía, por lo que se imprimió HTML file not found: ./index.html.
El código y las etiquetas o salidas visibles de esta sección se mantienen en inglés.
target=${1:-./index.html}
if [[ -f "$target" ]]; then
printf 'Found HTML file: %s\n' "$target"
else
printf 'HTML file not found: %s\n' "$target"
fi
Por ejemplo, después de guardar la comprobación en check-html-path.sh, ejecútala con bash check-html-path.sh "$HOME/Sites/demo page/index.html". La ruta que se pasa al script es la que se comprueba; un archivo temporal distinto no puede hacer que la comprobación tenga éxito. Si aparece Found HTML file, usa esa misma ruta con el comando de apertura de tu sistema. Esta comprobación verifica que exista un archivo normal, pero no valida el contenido HTML ni inicia un navegador.
Esta prueba de shell aparte comprueba el test de archivos de Bash sobre un archivo temporal; no comprueba la ruta del HTML:
file=$(mktemp)
trap 'rm -f "$file"' EXIT
[[ -f "$file" ]]
La prueba terminó correctamente y no produjo salida estándar.
Si Bash indica que no encuentra open o xdg-open, comprueba que estés usando el comando correspondiente a tu sistema operativo. open es la opción de macOS; en Linux, quizá falte el paquete de integración con el escritorio que proporciona xdg-open. Si el comando se ejecuta pero no aparece ningún navegador, confirma que haya una sesión gráfica disponible y una aplicación asociada a los archivos HTML. Si quieres usar un navegador concreto, comprueba que esté instalado y que el nombre de la aplicación o del comando sea correcto.
Una vista previa local sirve para revisar una página en tu propio equipo. Si la página depende del comportamiento de un servidor web, de rutas o de recursos que requieren HTTP, inicia por separado un servidor de desarrollo local y abre su URL; open y xdg-open solo entregan un archivo o una URL a una aplicación de escritorio.