Basename y dirname: nombres de archivo y directorio

¿Qué hacer cuando queremos ver el directorio donde está ubicado un archivo? ¿Y si dada la ruta absoluta a un archivo deseamos mostrar únicamente el nombre del mismo? Estas son tareas simples de realizar manualmente, pero tediosas si deben repetirse. Si además debemos combinarlas con otras operaciones de procesamiento de datos, la dificultad se asoma por la ventana. Para solucionar este inconveniente en este post hablaremos sobre el uso de basename y dirname. Estas dos herramientas nos permitirán acceder a estos datos muy fácilmente.

Basename y dirname

En primer lugar, el comando basename sin opciones y seguido por la ruta a un archivo nos devolverá el nombre del mismo. Tomemos como ejemplo a /var/log/httpd/access_log, el log de accesos del servidor web Apache:

basename /var/log/httpd/access_log

Si el archivo en cuestión tuviera una extensión que deseamos eliminar de la salida, podemos especificarlo con la opción -s. Para el archivo /home/gacanepa/file1.txt esto significaría:

basename -s .txt /home/gacanepa/file1.txt

Inclusive, podemos especificar una lista de rutas a examinar. Para que cada una de ellas se analice de forma separada, tenemos que utilizar -a seguida de la lista de archivos:

basename -s .sh -a /home/gacanepa/prueba.sh /home/gacanepa/test.sh /home/gacanepa/users.sh

Por otro lado, veamos ahora un par de ejemplos ilustrativos del uso de dirname. Este comando también puede utilizarse para extraer, desde una ruta absoluta o relativa, el directorio donde está ubicado un archivo o subdirectorio dado. Si estamos posicionados en /home/gacanepa, los siguientes comandos

dirname file1.txt
dirname /var/log/httpd/access_log
dirname /etc/httpd/conf # <-- Este es un directorio

nos devolverán . (directorio actual), /var/log/httpd, y /etc/httpd, respectivamente. De la misma manera que basename, podemos incluir múltiples rutas en el mismo comando.

En la Fig. 1 podemos ver el resultado correspondiente a la ejecución de los comandos anteriores:

Uso de basename y dirname
Figura 1 – Uso de basename y dirname

Espero que este post les haya resultado útil. ¡Nos leemos en el próximo! (No olviden suscribirse al blog para no perderse detalle)

Te invitamos a conocer la propuesta completa de Carrera Linux Argentina para convertirte en un experto y completo sysadmin desde cero. En nuestro sitio web Aprender Linux podrás encontrar más detalles y contactarnos si te surgen preguntas o dudas. ¡Esperamos tu consulta!

Un comentario en «Basename y dirname: nombres de archivo y directorio»

Los comentarios están cerrados.