Intereting Posts
Сценарий Bash не видит SIGHUP? Как объединить wget, сортировать и сохранять в новое имя файла? Есть ли эквивалентный файл .bashrc, который читают все оболочки? Сочетание тройника и tty Как создать img-образ, достаточно большой для хранения одного конкретного файла? Почему мой массив bash всегда имеет длину 1, когда я разделяю? Подключиться к SFTP с помощью VMware Centos Linux BCache и шифрование диска Где хранятся мои сохраненные файлы в домашней папке? Chromium забывает пароль, хранящийся в kwallet после обновления Как добавить файл2 в файл1 без изменения их содержимого, а затем вывести результат в файл3 / etc / motd не отображается при именованном канале? Как получить абсолютное положение (x, y координаты) пальца на сенсорной панели? Как установить / сделать разделы раздела ядра 9, которые документируют его функции и структуры данных? Имеет ли смысл безопасное удаление файлов в зашифрованном разделе?

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

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

От 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 .. по желанию.