Obtener el nombre del directorio actual (sin la ruta completa) en un script Bash


Answers

Usa el programa basename . Para su caso:

% basename "$PWD"
bin
Question

¿Cómo obtendría solo el nombre actual del directorio de trabajo en un script bash, o mejor aún, solo un comando de terminal?

pwd proporciona la ruta completa del directorio de trabajo actual, por ejemplo /opt/local/bin pero solo quiero bin




echo "$PWD" | sed 's!.*/!!'

Si está usando Bourne shell o ${PWD##*/} no está disponible.




Puedes usar una combinación de pwd y basename. P.ej

#!/bin/bash

CURRENT=`pwd`
BASENAME=`basename "$CURRENT"`

echo "$BASENAME"

exit;



muy simple

pwd | xargs basename



Solo usa:

pwd | xargs basename

o

basename "`pwd`"



Yo suelo usar esto en sh scripts

SCRIPTSRC=`readlink -f "$0" || echo "$0"`
RUN_PATH=`dirname "${SCRIPTSRC}" || echo .`
echo "Running from ${RUN_PATH}"
...
cd ${RUN_PATH}/subfolder

puedes usar esto para automatizar cosas ...




Los siguientes comandos darán como resultado la impresión de su directorio de trabajo actual en un script bash.

pushd .
CURRENT_DIR="`cd $1; pwd`"
popd
echo $CURRENT_DIR



Para los jinetes de encontrar a alguien como yo:

find $PWD -maxdepth 0 -printf "%f\n"



basename $(pwd)

o

echo "$(basename $(pwd))"