Можно ли определить чувствительные к каталогу псевдонимы в zsh (или любой другой оболочке)?

Я хочу использовать разные псевдонимы (или, возможно, один и тот же псевдоним по-разному) в зависимости от текущего рабочего каталога. Например, я мог бы использовать l как сокращенное для ls с некоторыми дополнительными опциями. Я хочу использовать два варианта:

 alias l="ls --sort=extension" # variant A alias l="ls --quoting-style=literal" # variant B 

Обычно я хотел бы использовать вариант A. Однако я хочу использовать вариант B при отображении изображений, то есть когда мой рабочий каталог ~/pictures . (Это всего лишь минимальный пример. Мой фактический прецедент более сложный.)

Я знаю, что я мог бы просто написать функцию l() с дифференцированием case на выходе $(pwd) . Тем не менее, я хочу более надежное решение, которое позволяет мне переименовывать конкретные каталоги без изменения псевдонима (и это не .zshrc моему .zshrc ).

Но возможно ли перезаписывать или добавлять псевдонимы, например, настраивая локальный .zshrc в соответствующем каталоге (например, это возможно для vim и локального .vimrc )?

Кроме того, возможно ли это в bash или любой другой оболочке?

  • Проверить переменную - массив в Bourne как shell?
  • Изменение оболочки по умолчанию без привилегий chsh или администратора
  • Печать оцениваемых приглашающих заполнителей для отображения
  • дождитесь выхода хрома, прежде чем продолжить сценарий оболочки
  • Shell glob - заменить файл path arg с содержимым файла
  • Могу ли я изменить способ отображения файла?
  • Force Bash 4 'globstar' вариант игнорировать символические ссылки
  • вставить url в терминал (urxvt, zsh) не удалось, некоторые символы сбрасываются
  • 3 Solutions collect form web for “Можно ли определить чувствительные к каталогу псевдонимы в zsh (или любой другой оболочке)?”

    Вы можете создать функцию или скрипт, чтобы проверить файл в текущем каталоге и изменить поведение на основе этого:

     l() { if [ -f ./.ls-literal-quote ] ; then ls --quoting-style=literal "$@" else ls --sort=extension "$@" fi } 

    Что-то вроде этого позволит вам сохранить конфигурацию в самом каталоге, а не в каком-то централизованном месте, если это то, что вы хотите.

    Теперь это требует засорения задействованных каталогов дополнительными файлами, но вы можете обойти это, используя расширенные атрибуты (если ваша система поддерживает это).

    Если вы хотите, чтобы чистый псевдоним был надежным, сложным и расширяемым, первым вариантом, который приходит на ум, является создание сценария bona-fide (например, l ), который вы храните в ~/bin . Затем вы можете добавить этот каталог в свой PATH или создать псевдоним, который явно вызывает его для вас.

    Конечно; просто добавьте псевдоним в некоторый код оболочки, который выполняет тест для вас:

     alias l="[[ $PWD =~ /pictures$ ]] && ls --quoting-style=literal || ls --sort=extension" 
    Interesting Posts

    MySQL имеет более 95 000 подключений, но список процессов пуст?

    найти последний файл с датой и датой и использовать sed

    Как заставить Intel GMA 3150 использовать только фиксированный прямоугольник экрана e

    Почему диспетчер сеансов xrdp не показывает приглашение входа в пароль пользователя?

    s3fs жалуется на SSH-ключ или сертификат SSL – как исправить?

    Как я могу динамически переключать выходной пункт сценария или команды?

    Как включить перенаправление SMTP?

    Как вы обрабатываете всю команду как sudo, которая включает перенаправление или конвейер?

    mdadm – Случайно вывел «mdadm –create» на существующий рейд-1. Суперблок теперь поврежден, и я не могу восстановить данные. Я развеял данные?

    Предупреждать о несуществующих псевдонимах в mutt

    Где можно установить локальное программное обеспечение, которое работает до / usr?

    Не удалось сделать работу с тачпадом

    Кто начал xterm в моей системе киевских xterm + lightdm?

    Как запустить gem ffaker в Debian?

    Могу ли я сделать окно alt-tab всегда отображаться на основном экране в Gnome?

    Linux и Unix - лучшая ОС в мире.