Зробіть компакт-диск слідувати символічним посиланням


76

У моєму домашньому каталозі встановлений код як sshfs, але ієрархію складно запам’ятати, тому я створив симпосилання в своєму домашньому каталозі, що веде до цього каталогу. Чи існує такий спосіб, що коли я перейду до цього символічного посилання, замість того, щоб посилатись на символічне посилання, він насправді cd до цього каталогу?

Якщо питання було незрозумілим, ось приклад того, що я шукаю:

foo@foo:~$ ls -l
lrwxrwxrwx  1 foo      foo              5 2012-11-14 08:20 foo -> bar/bar

foo@foo:~$ cd foo
foo@foo:~/bar/bar/$

Відповіді:


105

З будь-якою реалізацією POSIX cdви можете використовувати -Pопцію для цього.

$ help cd
...
    -P      use the physical directory structure without following symbolic links
...

Ви можете побачити його в дії тут:

$ mkdir foo
$ ln -s foo bar
$ cd -P bar
$ pwd
/tmp/tmp.WkupF2Ucuh/foo

Якщо ви хочете, щоб це було поведінкою за замовчуванням, ви можете створити псевдонім для cd, наприклад:

alias cd='cd -P'

... або використовувати set -o physical. Для tcsh еквівалентна команда set symlinks=chase.


А якщо у вас немає програми Posix ...?
Скотт Біггс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.