¿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:
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»
Excelente post, me fue de gran ayuda, gracias!!
Los comentarios están cerrados.