Linux Bash-как узнать, в каком каталоге я на самом деле с символическими ссылками?

предположим, у меня есть цепочка символических ссылок A - > B - > C

когда я печатаю pwd, он может показать мне в A, B или C в зависимости от того, как я здесь.

Как показать физический адрес каталога, т. е. не представлен никакими символическими ссылками?

5
задан CodeNoob
источник

3 ответов

ты пробовал

pwd -P

это работает для меня (использовать zsh).

$ ls -l

  drwxrwxr-x 2 xxxxxxx xxxxxxx 4096 Aug 28 10:14 a 
  lrwxrwxrwx 1 xxxxxxx xxxxxxx    1 Aug 28 10:15 b -> a

$ cd b

$ pwd
  /home/xxxxxxx/temp/b

$ pwd -P
  /home/xxxxxxx/temp/a
2
отвечен zachzins 2014-08-28 15:29:03
источник
  • команда, которую вы ищете, вероятно,**pwd -P**.
  • вы можете найти полезную даже readlink -f. (man info coreutils readlink).
  • в какой-то системе можно найти realpath то, что вы можете вызвать не только в текущей директории

    realpath . но даже к любому другому файлу realpath \my\long\path\file.ext

код shell обычно встроенный pwd команда, используемая вместо /bin/pwd.

Если писать в оболочке type pwd он ответит, если ваша оболочка предоставит вам встроенную версию.

для правильной помощи вы можете обратиться к

  • man pwd обычно \bin\pwd command
  • man bash и после поиска pwd для встроенной версии.
  • man <TheShellName> для других оболочек (zsh,csh,tcsh...)

С man bash например, вы можете прочитать

pwd [- LP]

вывести абсолютный путь к текущему рабочему каталогу. напечатанное имя пути не содержит символьных ссылок, если указан параметр-P или -o физическая опция для команды set builtin включена. Если используется параметр-L, путь может быть напечатан содержат символьные ссылки. Возвращаемое состояние равно 0, если при чтении имени текущего каталога не возникает ошибка или недопустимый опция входит в комплект поставки.

1
отвечен Hastur 2014-08-28 17:18:32
источник

вы можете использовать readlink (если он есть в вашем дистрибутиве) из текущей директории:

$ readlink -f .

или с полным путем:

$ readlink -f /my-dir/with-some-link

в RHEL/CentOS в в coreutils ПКГ. ХТ.

0
отвечен tonioc 2014-08-28 15:50:02
источник

Другие вопросы bash linux symbolic-link