La ruta completa de un archivo en Linux se refiere a la dirección completa, incluidos los directorios y subdirectorios mediante los cuales se puede ubicar el archivo. Cada sistema operativo tiene diferentes variantes de la ruta completa de un archivo.
En Linux, se parece a lo siguiente:
/home/user/Documents/test.txt
Esta es la ruta completa del archivo test.txt .
Cuando se trata manualmente con una ruta de archivo, es fácil obtener el nombre del archivo, pero si está utilizando un script para algún tipo de automatización, es posible que deba extraer el nombre del archivo en ciertos escenarios.
Veamos cómo podemos extraer el nombre del archivo de la ruta completa en Linux.
Uso del comando de nombre base
Todo el propósito del comando nombre base es recuperar el nombre de archivo de una ruta de archivo. Aunque no es demasiado difícil obtener el nombre del archivo de una ruta completa, el nombre base lo hace automáticamente por usted y no tiene que pasar por la molestia de analizar la ruta del archivo, etc.
La sintaxis es:
$ basename full_file_path $ basename /var/log/syslog [example command]
Utilice el -a
un argumento para pasar varias rutas.
$ basename -a /var/log/syslog /var/log/dpkg.log
Uso de la sustitución de parámetros de Bash
Sustituciones de parámetros de Bash son una forma de modificar una variable sobre la marcha. Por lo tanto, para usar este método, necesitamos almacenar la ruta del archivo en una variable.
$ fullpath="/var/log/syslog"
Ahora aplicaremos la sustitución de parámetros y almacenaremos el valor en otra variable.
$ filename=${fullpath##*/} $ echo $filename
Básicamente, lo que esto hace es eso:tritura la parte anterior al último ‘/’
en 'ruta completa ' y solo conserva el resto de la cadena, que no es más que el nombre del archivo.
Conclusión
En este artículo, aprendimos sobre dos formas de obtener un nombre de archivo a partir de una ruta de archivo completa en Linux. Si desea obtener más información sobre el comando nombre base y parámetro sustituciones en Bash, asegúrese de revisar sus respectivas páginas man con:
$ man basename $ man bash
¡Gracias por leer y háganos saber sus pensamientos y preguntas a continuación!