почему /var/mail/{имя пользователя} = /Users/{имя пользователя}?

почему /var/mail/{имя пользователя} = /Users/{имя пользователя}?

Мой основной вопрос: почему оба этих пути указывают на дом (т.е. ~)? Это указывает на один и тот же дом или он дублируется?

Сомневаюсь, что он дублируется, а если нет, то как cd ..решить, в какой каталог меня перенаправить?

решение1

Поведение cd ..будет зависеть от оболочки, ее настроек и от того, задействованы ли (что, скорее всего, и произошло в данном случае) символические ссылки.

bash-4.1$ cd /var/tmp
bash-4.1$ mkdir -p real/cats
bash-4.1$ ln -s real/cats dogs
bash-4.1$ cd dogs/
bash-4.1$ pwd
/var/tmp/dogs
bash-4.1$ pwd -P
/var/tmp/real/cats
bash-4.1$ cd ..
bash-4.1$ pwd
/var/tmp
bash-4.1$ set -o physical
bash-4.1$ cd dogs
bash-4.1$ pwd
/var/tmp/real/cats
bash-4.1$ cd ..
bash-4.1$ pwd
/var/tmp/real
bash-4.1$ 

Исследование /var/mailкаталога lsдолжно выявить, есть ли какие-либо символические ссылки, созданные, как я предполагаю, Apple.

решение2

В macOS (я предполагаю, что это так, поскольку вы упомянули /Users), /var/mail/username- это mboxотформатированный почтовый ящик для пользователя username, а /Users/username- это домашний каталог для того же пользователя.

На обычной, немодифицированной установке macOS /var/mail/usernameбудетнетбыть символической ссылкой на домашний каталог пользователя, а также не будет /Users/usernameссылкой на /var/mail/username.


cd ..по умолчанию будет работать как cd -L .., т.е. он перенесет вас наверхлогичныйродительский каталог, а нефизическийродительский каталог ( cd -P ..).

Из kshруководства по macOS:

По умолчанию имена символических ссылок обрабатываются буквально при поиске имени каталога. Это эквивалентно параметру -L. -PПараметр вызывает разрешение символических ссылок при определении каталога. Последний экземпляр -Lили -Pв командной строке определяет, какой метод используется.

Связанный контент