z - jump around

Defensive & Threat Intelligence v1.12 · 09.12.2023 не обновлялся >2 лет

z — утилита для быстрого перехода по часто используемым каталогам на основе frecency

v1.12
09.12.2023 current

Установка
. /path/to/z.sh
показать оригинал переведено ИИ

Название

z - быстрый переход по директориям

Краткое описание

z [-chlrtx] [regex1 regex2 ... regexn]

Доступность

bash, zsh

Описание

Отслеживает наиболее часто используемые директории на основе «фрекенси» (frecency).

После короткой фазы обучения z будет перемещать вас в наиболее «фректную» директорию, которая соответствует ВСЕМ регулярным выражениям, указанным в командной строке, по порядку.

Например, z foo bar будет соответствовать /foo/bar, но не /bar/foo.

Опции

-c ограничить соответствия поддиректориями текущей директории

-e вывести лучшее соответствие, не выполнять cd

-h показать краткое справочное сообщение

-l только список

-r соответствие только по рангу

-t соответствие только по времени последнего доступа

-x удалить текущую директорию из файла данных

Примеры

z foo перейти в наиболее фректную директорию, соответствующую foo

z foo bar перейти в наиболее фректную директорию, соответствующую foo, затем bar

z -r foo перейти в директорию с наивысшим рангом, соответствующую foo

z -t foo перейти в наиболее недавно использованную директорию, соответствующую foo

z -l foo вывести список всех директорий, соответствующих foo (по фрекенси)

Замечания

Установка: Добавьте что-то вроде этого в ваш $HOME/.bashrc или $HOME/.zshrc:

Походите по директориям некоторое время, чтобы накопить базу данных.

ПОЛУЧАЙТЕ ВЫГОДУ!!

Дополнительно: Задайте $_Z_CMD, чтобы изменить имя команды (по умолчанию z). Задайте $_Z_DATA, чтобы изменить файл данных (по умолчанию $HOME/.z). Задайте $_Z_MAX_SCORE меньшим значением, чтобы записи устаревали быстрее (по умолчанию 9000). Задайте $_Z_NO_RESOLVE_SYMLINKS, чтобы предотвратить разрешение символических ссылок. Задайте $_Z_NO_PROMPT_COMMAND, чтобы самостоятельно управлять PROMPT_COMMAND/precmd. Задайте $_Z_EXCLUDE_DIRS как массив директорий, которые нужно исключить из отслеживания. Задайте $_Z_OWNER, чтобы разрешить использование при работе в режиме sudo -s. (Эти настройки должны быть указаны в .bashrc/.zshrc до строки, добавленной выше.) Установите прилагаемую man-страницу z.1 куда-нибудь в ваш MANPATH, например, в /usr/local/man/man1.

Старение: Ранг директорий, поддерживаемых z, подвергается старению по простой формуле. Ранг каждой записи увеличивается каждый раз при доступе к ней. Когда сумма рангов превышает 9000, все ранги умножаются на 0.99. Записи с рангом ниже 1 забываются.

Фрекенси: Фрекенси — это гибрид слов «recent» (недавний) и «frequency» (частота). Это взвешенный ранг, который зависит от того, как часто и как недавно что-то происходило. Насколько мне известно, этот термин придумали в Mozilla.

Для z директория с низким рангом, но недавно использованная, быстро получит более высокий ранг, чем директория, к которой часто обращались давно.

Фрекенси определяется во время выполнения.

Общее: Когда несколько директорий соответствуют всем запросам и у них есть общий префикс, z перейдёт в самую короткую из соответствующих директорий, не учитывая приоритет. Это действует уже довольно давно, хотя и не было задокументировано, но, вероятно, должно быть настраиваемым или пересмотрено.

Автодополнение: z поддерживает автодополнение. После любого количества аргументов нажмите TAB, чтобы дополнить директории, соответствующие каждому аргументу. Из-за ограничений реализаций автодополнения в оболочке дополняться будет только последний аргумент.

Внутри z решает, что вы запросили автодополнение, если последний переданный аргумент является абсолютным путём к существующей директории. Это может вызвать неожиданное поведение, если последний аргумент z начинается с /.

Переменные окружения

Определена функция _z().

Содержимое переменной $_Z_CMD алиасится на _z 2>&1. Если не установлено, $_Z_CMD по умолчанию равно z.

Переменная окружения $_Z_DATA может использоваться для управления расположением файла данных. Если она не определена, расположение по умолчанию — $HOME/.z.

Переменная окружения $_Z_NO_RESOLVE_SYMLINKS может быть установлена для предотвращения разрешения символических ссылок. Если она не установлена, символические ссылки будут разрешаться при добавлении в файл данных.

В bash z добавляет команду в переменную окружения PROMPT_COMMAND для поддержания своей базы данных. В zsh z добавляет функцию _z_precmd в массив precmd_functions.

Переменная окружения $_Z_NO_PROMPT_COMMAND может быть установлена, если вы хотите самостоятельно управлять PROMPT_COMMAND или precmd.

Переменная окружения $_Z_EXCLUDE_DIRS может быть установлена как массив директорий, которые нужно исключить из отслеживания. $HOME всегда исключается. Директории должны быть указаны полными путями без завершающих слэшей.

Переменная окружения $_Z_OWNER может быть установлена в ваше имя пользователя, чтобы разрешить использование z, когда ваше окружение sudo сохраняет $HOME.

Файлы

Данные хранятся в $HOME/.z. Это можно переопределить, установив переменную окружения $_Z_DATA. При инициализации z выдаст ошибку, если этот путь является директорией, и не будет работать корректно. Страница руководства (z.1) предоставлена.

См. также

regex(7), pushd, popd, autojump, cdargs

Пожалуйста, сообщайте об ошибках на https://github.com/rupa/z/

Войдите, чтобы оставить комментарий