Ответ 1
Вы правы - это быстрая команда:
basename "$PWD"
Если вы наберете pwd, вы получите что-то вроде:
/home/username/Desctop/myfolder/
Как взять последнюю часть? Путь myfolder
.
Это должно быть просто, но я не смог найти легкое решение в оболочке. Я знаю, как позаботиться об этом в java, но не в оболочке.
спасибо
Вы правы - это быстрая команда:
basename "$PWD"
Использование basename $(pwd)
- это две бесполезные и дорогие вилки.
echo ${PWD##*/}
должен делать трюк полностью в оболочке без дорогих вилок (snag: для корневого каталога это пустая строка).
В Linux существует пара команд dirname
и basename
. dirname
извлекает все, кроме последней части пути, а basename
извлекает только последнюю часть пути.
В этом случае использование basename
сделает то, что вы хотите:
basename $(pwd)
Вы можете использовать basename
для этого, если последняя часть действительно является компонентом каталога (а не файлом):
$ basename /home/username/Desctop/myfolder/
myfolder
Чтобы извлечь последнюю часть пути, попробуйте использовать basename
...
basename $(pwd);
function basename {
shopt -s extglob
__=${1%%+(/)}
[[ -z $__ ]] && __=/ || __=${__##*/}
}
basename "$PWD"
echo "$__"