Как работать с символическими ссылками на каталоги

Я экспериментирую с символическими ссылками, и я сталкиваюсь с несколькими проблемами. Во-первых, после того, как после символической ссылки на каталог, чтобы отобразить фактический рабочий каталог вместо каталога в отношении символической ссылки (например, при использовании pwd ). Во-вторых, как «создать резервную копию» в фактический каталог в файловой системе, а не в символическую ссылку.

2 Solutions collect form web for “Как работать с символическими ссылками на каталоги”

От man pwd на моем Ubuntu:

ваша оболочка может иметь свою собственную версию pwd

Я использую bash . Простая команда pwd дает мне путь относительно символической ссылки; yet /bin/pwd возвращает фактический путь. Команда cd также встроена в bash.

Другими словами: это оболочка специфическая.

EDIT: комментарий thrig (см. Ниже) кажется лучшей альтернативой всему, что я написал ниже этой строки.

Для «резервного копирования» в фактический каталог попробуйте cd "$(/bin/pwd)/.." или cd "$(/bin/pwd)"; cd .. cd "$(/bin/pwd)"; cd .. Вторая форма может быть изменена, чтобы создать псевдоним для cd , я думаю:

 alias cd='cd "$(/bin/pwd)"; cd' 

Аналогичным образом вы можете избавиться от bash pwd builtin:

 alias pwd=`/bin/pwd` 

Вы хотите pwd -P .

От man pwd на CentOS 6:

  -L, --logical use PWD from environment, even if it contains symlinks -P, --physical avoid all symlinks 

Или, с man-страницы BSD pwd и немного более полезно сформулировать:

  -L Display the logical current working directory. -P Display the physical current working directory (all symbolic links resolved). 

Я не уверен на 100%, что вы подразумеваете под «резервным копированием», но предполагая, что вы имеете в виду «Изменить каталоги в родительском каталоге текущего каталога», вы можете использовать:

 cd "$(dirname "$(pwd -P)")" 

Это эквивалентно cd .. если ваш текущий рабочий путь не содержит символических ссылок.

Кроме того, вы можете использовать cd "$(pwd -P)" чтобы перейти к физическому пути текущего логического каталога, а затем использовать cd .. по желанию.

  • Странность с символами и относительными путями
  • Как эта символьная связь не следует следовать?
  • root не может подключиться к symlinked socket другого пользователя
  • rsync жалуется на символические ссылки
  • Установка компакт-диска ярлыка
  • sshfs разрывает символические ссылки с сервера SFTP
  • Когда я cd через символическую ссылку, почему pwd показывает символическую ссылку вместо реального пути?
  • Samba не показывает символические ссылки
  • Почему ln -s создает относительные сломанные ссылки?
  • Могут ли символические ссылки охватывать разные файловые системы в Unix или Linux?
  • читать только символическую ссылку или что-то подобное?
  • Interesting Posts

    PyOpenCL на Linux Монетный двор: PLATFORM_NOT_FOUND_KHR

    Найти и удалить каталоги в .zip-файлах

    Могу ли я запретить использование пространства подкачки для определенного процесса (и его просто убить)?

    Использовать / etc / aliases для исходящей почты, переданной postfix с локальным доменом

    Deepin OS не обнаруживает внешний монитор, подключенный через HDMI

    предотвращение DoS-атаки на веб-сервере Apache

    Как получить tty, в котором работает bash?

    Лучший способ частично пройти через строку 25k?

    acpi_video0 яркость не влияет на экран

    USB-порты, не работающие с Ubuntu Linux 14

    Включает ли установщик Linux Mint возможность заменить / обновить ТОЛЬКО Linux Mint на двойной системе загрузки?

    Синтаксис Vim выделяет определенные строки

    Могу ли я автоматизировать SFTP для загрузки всего дерева?

    Можно ли установить Debian или Ubuntu Binaries на Arch Linux?

    CentOS настраивает установку ISO-ошибки, устанавливая базовый репозиторий

    Linux и Unix - лучшая ОС в мире.