Split en ShellScript: Obtener el último directorio de un path

written by uve 26 October 2011

La idea es bastante sencilla. Partimos de un path como entrada en uno de los parámetros en un ShellScript y necesitamos saber el último componente. Por ejemplo:

Entrada: /un/path/cualquiera
Valor que buscamos: cualquiera

Una posible solución es ésta:

#!/bin/bash

if [ $# -ne 1 ]
then
    echo "Usage: $0 path"
    exit -1
fi

path=$1
path_base=${path%/*}
name=${path##*/}

if [ $path_base = $name ]
then
    path_base=`pwd`
fi

echo "$path_base/$name"

Actualización (5/11/11):

Otra opción para los que no se quieran complicar la vida me la envía @dvelezyx vía Twitter:

basename `pwd`

Tags

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.