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

Как получить полный путь от "../" в командной строке в оболочке Linux script

Если у меня есть оболочка script, где я получаю родительскую папку с помощью "../", могу ли я как-то расширить ее до абсолютного пути?

4b9b3361

Ответ 1

Вы хотите readlink -f.

$ cd /tmp
$ readlink -f ..
/

Ответ 2

Используйте realpath

$ realpath ..
/home

Ответ 3

Хотя вы часто можете получить полный путь к каталогу с помощью stat, вы также можете использовать pwd -P... однако, это не очень помогает, если вы на самом деле cd в интересующем вас каталоге.

Чтобы обойти это ограничение без фактического изменения текущего рабочего каталога, я нашел все, чтобы просто запустить этот cd в под-оболочке, как в:

THIS=`dirname $0`     # Which is often "."
PARENT=$(
  cd $THIS            # At this point, we are sure we're in script directory
  dirname `pwd -P`
)
echo "PARENT=$PARENT"

Ответ 4

При использовании в строке cmd:

dirname $(pwd)

При использовании в оболочке script:

PROJ_DIR=$(dirname $(pwd))