El comando dirname en Linux imprime una ruta de archivo con su componente final eliminado. Esto básicamente le da la ruta del directorio desde la ruta del archivo.
Esto es especialmente útil en los scripts de bash en los que desea extraer la ruta del directorio de la ruta de archivo larga.
El comando dirname es complementario al comando basename. El comando basename extrae el nombre del archivo de la ruta mientras que dirname extrae la ruta del directorio.
Déjame mostrártelo con algunos ejemplos.
Ejemplos de comandos de Dirname
El comando dirname tiene una sintaxis sencilla.
dirname OPTION PATH
El uso del comando dirname con la ruta absoluta de un archivo dará la ruta del directorio:
dirname /home/user/data/filename.txt
/home/user/data
Al igual que el comando basename, el comando dirname también es realmente estúpido. Realmente no reconoce la ruta del archivo. Solo busca las barras inclinadas (/) e imprime lo que sea que esté antes de la última barra inclinada. Básicamente, puede darle cualquier cadena con / y funcionará en ella.
Por ejemplo, estoy usando una cadena aleatoria aquí sin nombre de archivo. Puede ver que todavía funciona igual y genera una cadena que elimina el último / y el texto que le sigue.
Si la ruta no tiene una barra inclinada (/), generará un punto (.) que implica el directorio actual.
También puede usar dirname con múltiples rutas. Devolverá la salida para cada ruta en una nueva línea:
Puede usar la opción -z para obtener el resultado en la misma línea con salidas separadas por carácter NULL.
Usando dirname en bash script
Mostré algunos ejemplos del comando dirname. Hablemos sobre el uso de dirname en scripts bash.
Suponga que tiene una variable de ruta de archivo y desea obtener la ruta al directorio que contiene el archivo. Este podría ser un script simple:
pathname="/home/dir/data/filename"
result=$(dirname "$pathname")
echo $result
Como mencioné anteriormente, el comando dirname se complementa con el comando basename. A diferencia de dirname, el comando basename imprime solo el último componente de la ruta.
Espero que les haya gustado este tutorial. Como siempre, no dude en hacer preguntas o brindar sugerencias en la sección de comentarios.
¿Te gustó el artículo? Compártelo y ayúdanos a crecer :)