GNU/Linux >> Tutoriales Linux >  >> Linux

¿Obtener ruta completa desde dentro de Bash Script?

Tengo un script bash que funciona con rutas relativas. Necesita tener un directorio de trabajo que sea igual al directorio en el que está almacenado el script. Esto funciona bien siempre y cuando lo inicie desde el indicador, porque primero puedo hacer un cd al directorio del script. Sin embargo, cuando creo un enlace simbólico a la secuencia de comandos en /etc/cron.hourly, la secuencia de comandos se rompe.

Necesito una forma de hacer que el script bash cambie el directorio al directorio en el que está almacenado el script. Sin embargo, hasta ahora no he tenido éxito. ¿Hay una manera fácil de hacer esto, incluso si el script se llama desde cron a través de un enlace simbólico?

Respuesta aceptada:

Deberías poder hacer esto.

  • El parámetro $0 se expande a la ruta completa (incluido el nombre) del script tal como se invocó.
  • La función de shell integrada test (o [ ] ) puede probar si una ruta es un enlace simbólico usando -L
  • ls -l , si se aplica a un enlace simbólico, dará una sola línea de salida con la ruta verdadera como campo final.

Eso es suficiente para que descubras la ubicación de la fuente. Por supuesto, eso podría ser un enlace simbólico, lo que requeriría que lo hicieras de forma recursiva...


Linux
  1. Evitar que un script bash se ejecute simultáneamente

  2. Bash Script para eliminar el archivo más antiguo de una carpeta?

  3. ¿Opción desconocida de Rsync de la ejecución del script Bash?

  4. ¿Desde dónde se ejecuta un script de Shell?

  5. Ejecutar script bash desde URL

Cómo obtener el nombre de archivo de la ruta completa en Linux

¿Por qué no puedo usar Cd en un script Bash?

¿Cómo obtener la ruta completa de un archivo?

Abra Vim desde dentro de un script de shell Bash

Inicio de sesión automático en la ventana acoplable dentro de un script bash

¿Cómo extraer el nombre de archivo sin la extensión de una ruta completa?