Идея состоит в том, что, когда я в данный момент нахожусь в папке
home/Documents
, вышеупомянутый код печатаетhome
- но все еще находится в каталогеhome/Documents
Вам не нужно echo
вообще, потому что pwd
печатает то, что вы хотите. Использовать этот:
(cd .. && pwd)
Здесь есть две умные вещи:
(whatever)
работаетwhatever
в подрубрике. Еслиcd
внутри этих скобок, он изменит текущий рабочий каталог подоболочки, а не основной (вашей текущей) оболочки.a && b
работает,b
еслиa
успешно (возвращен статус выхода0
). В общем, если вы хотите, чтобы ваш сценарийcd
был надежным, хорошо всегда проверять егоcd
успешность. Это предотвращает запуск других команд в неправильном каталоге.
Обратите внимание, что когда задействованы символические ссылки, вы можете не получить ожидаемый путь. Смотрите этот вики ответ сообщества для деталей.