Descripción general
El comando basename elimina la parte del directorio de una ruta de archivo y devuelve solo el nombre del archivo. Esto es muy útil para la manipulación de nombres de archivo en scripts de shell. Por ejemplo, puede extraer solo 'document.txt' de la ruta '/home/user/document.txt'.
Funciones principales
- Extraer el nombre de archivo de una ruta de archivo
- Eliminar un sufijo especificado
- Procesar múltiples rutas de archivo (extensión GNU)
Opciones principales
El comando basename proporciona varias opciones relacionadas con la extracción de nombres de archivo y la eliminación de sufijos.
Control de sufijo y salida
Comando generado:
Combina los comandos.
Descripción:
`basename` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
Varios ejemplos de cómo usar el comando basename.
Extracción básica del nombre de archivo
basename /home/user/documents/report.pdf
Extrae solo el nombre del archivo de la ruta dada.
Eliminar sufijo (segundo argumento)
basename /home/user/documents/report.pdf .pdf
Elimina un sufijo específico del nombre del archivo.
Eliminar sufijo (opción --suffix)
basename --suffix=.pdf /home/user/documents/report.pdf
Elimina el sufijo usando la opción --suffix.
Procesar múltiples nombres de archivo (opción -a)
basename -a /etc/passwd /var/log/syslog
Extrae nombres de archivo de múltiples rutas de archivo a la vez.
Uso con find y xargs
find . -maxdepth 1 -type f -print0 | xargs -0 basename --suffix=.txt
Extrae los nombres base de los archivos encontrados con el comando find.
Consejos y precauciones
Consejos útiles y puntos a tener en cuenta al usar basename.
Combinación con dirname
basename extrae solo el nombre del archivo, mientras que dirname extrae solo la ruta del directorio, por lo que se pueden usar juntos para separar la ruta del archivo.
- Ejemplo: path="/home/user/file.txt" filename=$(basename "$path") dirname=$(dirname "$path") echo "Filename: $filename" echo "Dirname: $dirname"
Malentendido sobre la opción -s de basename
Algunos usuarios pueden buscar una opción como `basename -s`, pero el comando `basename` estándar no tiene una opción `-s`. Para eliminar un sufijo, debe especificar el sufijo directamente como segundo argumento o usar la opción `--suffix`.
Separador de ruta
basename reconoce la barra inclinada (`/`) como separador de ruta por defecto. Tenga cuidado al procesar separadores de ruta de otros sistemas (por ejemplo, la barra invertida `\` de Windows).