Подтвердить что ты не робот

Возьмите последнюю часть пути папки в оболочке

Если вы наберете pwd, вы получите что-то вроде:

/home/username/Desctop/myfolder/

Как взять последнюю часть? Путь myfolder.

Это должно быть просто, но я не смог найти легкое решение в оболочке. Я знаю, как позаботиться об этом в java, но не в оболочке.

спасибо

4b9b3361

Ответ 1

Вы правы - это быстрая команда:

basename "$PWD"

Ответ 2

Использование basename $(pwd) - это две бесполезные и дорогие вилки.

echo ${PWD##*/}

должен делать трюк полностью в оболочке без дорогих вилок (snag: для корневого каталога это пустая строка).

Ответ 3

В Linux существует пара команд dirname и basename. dirname извлекает все, кроме последней части пути, а basename извлекает только последнюю часть пути.

В этом случае использование basename сделает то, что вы хотите:

basename $(pwd)

Ответ 4

Вы можете использовать basename для этого, если последняя часть действительно является компонентом каталога (а не файлом):

$ basename /home/username/Desctop/myfolder/
myfolder

Ответ 5

Чтобы извлечь последнюю часть пути, попробуйте использовать basename...

basename $(pwd);

Ответ 6

function basename {
    shopt -s extglob
    __=${1%%+(/)}
    [[ -z $__ ]] && __=/ || __=${__##*/}
}

basename "$PWD"
echo "$__"