GNU/Linux >> Tutoriales Linux >  >> Linux

Obtenga el último nombre de directorio/nombre de archivo en un argumento de ruta de archivo en Bash

El siguiente enfoque se puede utilizar para obtener cualquier ruta de un nombre de ruta:

some_path=a/b/c
echo $(basename $some_path)
echo $(basename $(dirname $some_path))
echo $(basename $(dirname $(dirname $some_path)))

Salida:

c
b
a

Bash puede obtener la última parte de una ruta sin tener que llamar al basename externo :

dir="/path/to/whatever/"
dir="${dir%/}"             # strip trailing slash (if any)
subdir="${dir##*/}"

Esto usa la expansión de parámetros de Bash para eliminar la parte de la cadena antes de la última barra inclinada (restante).


basename elimina el prefijo de directorio de una ruta:

$ basename /usr/local/svn/repos/example
example
$ echo "/server/root/$(basename /usr/local/svn/repos/example)"
/server/root/example

Para imprimir el nombre del archivo sin usar comandos externos,

Ejecutar:

fileNameWithFullPath="${fileNameWithFullPath%/}";
echo "${fileNameWithFullPath##*/}" # print the file name

Este comando debe ejecutarse más rápido que basename y dirname .


Linux
  1. ¿Obtener ruta completa desde dentro de Bash Script?

  2. Uso del comando Linux Basename en Bash Scripts

  3. Agregar marca de tiempo a un nombre de archivo con mv en BASH

  4. Tome la última parte de la ruta de la carpeta en Shell

  5. Cómo incluir un archivo en un script de shell bash

Bash:escribir en archivo

Comando de fuente Bash

Cómo obtener el nombre de archivo de la ruta completa en Linux

Usando el comando Dirname de Linux en Bash Scripts

Cómo obtener solo el número de líneas de un archivo

Obtener la última fecha de modificación del archivo en Linux