Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills
19.06.2025
No categories

Uso del comando basename en scripts Bash

Uso del comando basename en scripts Bash

Cuando se trabaja con scripts Bash, a menudo es necesario extraer partes específicas de las rutas de los archivos, como sus nombres o extensiones. Aquí es donde el comando basename resulta útil. Permite eliminar la ruta del directorio y extraer sólo el nombre o la extensión del archivo, lo que lo convierte en una herramienta esencial para la creación de scripts y la automatización de tareas en entornos Linux.

En este artículo, exploraremos cómo usar el comando basename en scripts Bash, su sintaxis y casos de uso comunes que pueden simplificar tus tareas de manejo de archivos.

¿Qué es el comando basename?

El comando basename en Linux se utiliza para eliminar la ruta del directorio y mostrar sólo el nombre del archivo o el nombre del archivo sin su extensión. Es particularmente útil en scripts donde se necesita extraer un nombre de archivo de una ruta de archivo completa. El comando basename ayuda a mantener los scripts limpios y enfocados en manipular nombres de archivos sin preocuparse por la estructura del directorio.

Sintaxis básica de basename

basename [ruta] [sufijo]
  • ruta: La ruta completa a un archivo o directorio.
  • sufijo: Un argumento opcional utilizado para eliminar un sufijo específico (como una extensión de archivo).

Ejemplo 1: Extracción de un nombre de archivo de una ruta

El uso más común de basename es extraer el nombre de un fichero de una ruta completa. Por ejemplo:

#!/bin/bash
file_path="/home/usuario/documentos/informe.txt"
nombre_archivo=$(nombre_base "$ruta_archivo")
echo "El nombre del archivo es: $nombre_archivo"

Salida:

El nombre del fichero es: informe.txt

En este ejemplo, basename extrae informe.txt de la ruta proporcionada. Esto es útil cuando se desea trabajar sólo con el nombre del archivo en el script.

Ejemplo 2: Eliminación de la extensión de archivo

Si desea eliminar la extensión de archivo del nombre de archivo extraído, puede proporcionar la extensión como segundo argumento:

/bin/bash
file_path="/home/usuario/documentos/informe.txt"
nombre_archivo=$(nombre_base "$ruta_archivo".txt)
echo "El nombre de archivo sin extensión es: $nombre_archivo"

Salida:

El nombre de archivo sin extensión es: report

En este caso, se especifica el sufijo .txt, por lo que basename lo elimina del nombre del archivo, dejando sólo report. Esto es especialmente útil cuando se desea cambiar la extensión del archivo o utilizar el nombre del archivo en un contexto diferente.

Ejemplo 3: Uso de basename con bucles en scripts

El comando basename se utiliza a menudo en bucles para procesar varios archivos de un directorio. Por ejemplo, si desea recorrer todos los archivos .txt de un directorio e imprimir sus nombres sin extensiones:

/bin/bash
for file in /home/usuario/documentos/*.txt; do
nombre_archivo=$(nombre base "$archivo".txt)
echo "Procesando archivo: $nombre_archivo"
hecho

Salida:

Fichero de tratamiento: informe
Fichero de tratamiento: notas
Fichero de tratamiento: resumen

En este script, el bucle recorre todos los archivos .txt del directorio especificado. El comando basename se utiliza para eliminar la ruta y la extensión .txt, imprimiendo sólo el nombre de cada archivo.

Ejemplo 4: Uso de basename en combinación con otros comandos

El comando basename puede combinarse con otros comandos para crear scripts más avanzados. Por ejemplo, es posible que desee copiar un archivo a otro directorio manteniendo sólo el nombre del archivo:

/bin/bash
archivo_fuente="/home/usuario/documentos/informe.txt"
destination_dir="/home/user/backup "
# Extraer el nombre del fichero usando basename
file_name=$(basename "$source_file")
CODEBLOCK_d41d8cd98f00b204e9800998ecf8427e_SAFE__# Copiar el archivo al directorio de destino con el mismo nombre
cp "$source_file" "$destination_dir/$file_name"

echo "File copied to $destination_dir/$file_name"
Output:
File copied to /home/user/backup/report.txt

En este ejemplo, el comando basename se utiliza para extraer report.txt de la ruta completa. A continuación, el comando cp utiliza este nombre de archivo para copiar el archivo en el directorio de copia de seguridad. Este método garantiza que el nombre del archivo permanezca inalterado durante el proceso de copia.

Ejemplo 5: Uso de basename para analizar argumentos de script

También puede utilizar basename para simplificar los scripts que toman una ruta de archivo como argumento. Por ejemplo:

/bin/bash
if [ -z "$1" ]; then
echo "Uso: $0 "
exit 1
fifile_path="$1"

file_name=$(basename "$file_path")

echo "You provided the file: $file_name"

Guarde este script como get_filename.sh y ejecútelo con una ruta de archivo:

./get_filename.sh /home/usuario/documentos/informe.txt

Salida:

Usted proporcionó el archivo: report.txt

En este script, basename extrae el nombre del archivo de la ruta proporcionada como argumento del script. Esta es una forma práctica de procesar rutas de archivos en scripts que aceptan entradas del usuario.

Resumen

El comando basename es una poderosa herramienta para manejar rutas de archivos en scripts Bash. Al extraer sólo el nombre del archivo o eliminar las extensiones, le permite centrarse en las partes de la ruta del archivo que le interesan. Ya sea que estés procesando múltiples archivos en un bucle o simplemente extrayendo un nombre de archivo para mostrarlo, basename puede hacer que tus scripts Bash sean más eficientes y legibles.

He aquí un rápido resumen de lo que has aprendido:

  • basename extrae nombres de archivos de sus rutas.
  • Puede remover extensiones de archivos usando un segundo argumento.
  • Es muy útil para tareas de scripting como copiar archivos, procesar argumentos o iterar sobre directorios.

El uso eficaz de basename puede ahorrar tiempo y hacer que sus scripts sean mucho más fáciles de mantener. Ahora puedes añadirlo a tu caja de herramientas de scripting y empezar a simplificar tus tareas de manejo de archivos en Linux ¡Feliz programación!

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills

Похожие записи не найдены.