Resumen
El comando 'basename' se utiliza para eliminar la parte del directorio de una ruta de archivo y extraer solo el nombre del archivo (o el último nombre del directorio). Esto es muy útil al manipular rutas de archivos en scripts de shell, especialmente cuando solo se necesita el nombre del archivo.
Funciones principales
- Extraer el nombre del archivo de la ruta del archivo
- Opcionalmente, eliminar un sufijo especificado del nombre del archivo
- Proporcionar funcionalidad para procesar múltiples rutas en lotes
Opciones principales
Las siguientes son las opciones principales disponibles en el comando estándar 'basename'.
Comportamiento básico y filtrado
Comando generado:
Combina los comandos.
Descripción:
`basename-u` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
Los siguientes son ejemplos de uso reales del comando estándar '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
basename /var/log/syslog.log .log
Elimina un sufijo específico del nombre del archivo.
Extraer múltiples nombres de archivo
basename -a /etc/hosts /usr/bin/ls /tmp/test.txt
Extrae nombres de archivo de múltiples rutas a la vez.
Terminación NUL y uso con xargs
find . -maxdepth 1 -type f -print0 | xargs -0 basename -z
Procesa de forma segura la salida terminada con NUL usando `xargs -0`.
Consejos y precauciones
Explicación de la opción basename-u
La opción '-u' incluida en el nombre del comando no es una opción válida para el comando estándar 'basename'. El comando 'basename' de GNU Coreutils no tiene la opción '-u', y su uso puede generar un mensaje de error como 'basename: invalid option -- 'u''. Si se utiliza '-u' en un script o entorno específico, es probable que se trate de un script o alias definido por el usuario en lugar del comando 'basename'.
Combinación con dirname
'basename' extrae solo el nombre del archivo, mientras que 'dirname' extrae solo la ruta del directorio. El uso combinado de estos dos comandos permite separar completamente la ruta del archivo en directorio y nombre de archivo, lo que es muy útil al escribir scripts de shell.
- Ejemplo: path="/home/user/documents/report.pdf" echo "Directorio: $(dirname "$path")" echo "Nombre de archivo: $(basename "$path")"