Отменить флаг по умолчанию

Отменить флаг по умолчанию

В качестве контекста. У меня есть папка, на которую я создал символическую ссылку в своем $HOMEкаталоге.

~> ls -s /var/www/to_link "$HOME/linked"

Я cdв"$HOME/linked"

Итак, по умолчанию pwdпоказывает текущий каталог, включая символические ссылки. В этом случае это будет /home/christopher/linked. Если я хочу, чтобы он вернул, /var/www/to_linkмне нужно ввести pwd -P. Я обычно нахожу эту вторую форму более полезной, чем первую, но я хотел бы, чтобы обе были доступны.

  • Возможно ли сделать pwdтак, чтобы флаг был включен по умолчанию -P, а затем использовать другой флаг для включения символических ссылок? Так что в принципе, pwdвернет /var/www/to_linkи pwd -X(или какой-то другой флаг) вернет оригинальный /home/christopher/linked.

решение1

У обоих cdи pwdесть параметры -Pи -L. Похоже, вы хотите использовать cd -Pпо умолчанию (что затем устанавливает $PWD в физический каталог, что затем влияет на вашу командную строку bash и вывод pwd).

Вы можете поместить один из них в свой .bashrc:

alias cd='cd -P'

cd () { builtin cd -P "$@"; }

Если вы хотите увидеть «~/linked» в командной строке bash, используйте «логический» cd:cd -L ~/linked

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