У меня есть символическая ссылка
~/link -> ~/a/really/long/path
Когда я делаю
cd ~/link
cd ..
мне нужно
~
но я хочу пойти в
~/a/really/long
Есть ли способ сделать это?
Я использую Bash.
bash
cd-command
Xodarap
источник
источник
cd ~/a/really/long/path
то, чтоcd ..
ставит тебя~
сейчас? Я не могу воспроизвести это.~/a/really/long/path
затем перейдите на этот диск, а затем на..
. Вы должны вернуться в ~ (при условии, что это то, с чего вы начали).Ответы:
Bash (а также ksh, zsh и даже ash) отслеживают изменения в каталогах, так что
cd /foo/bar && cd ..
вы всегда можете перейти/foo
дажеbar
к символической ссылке. Передайте-P
опцию, чтобыcd
игнорировать отслеживаемое изменение и следуйте «физической» структуре каталогов:Смотрите
help cd
илиman builtins
для документации о встроенной Bashcd
. Если вам действительно не нравится функция отслеживания каталогов, вы можете отключить ее с помощьюset -P
bash (set -o no_chase_link
в zsh).источник
-P
или-o physical
уже установил?Вы также можете использовать readlink, чтобы найти физический путь к этому каталогу, а затем перейти на один каталог выше:
источник
Один из методов, который вы могли бы использовать, - использовать псевдоним вместо символической ссылки, чтобы перейти на ~ / a / Действительно / Длинный / путь. Это метод, который я использую, с тех пор я могу просто набрать простую команду 1/2 / et cetera letter вместо cd symlink
источник