z — утилита для быстрого перехода по часто используемым каталогам на основе frecency
CLI-утилита для проверки IP-адресов через AbuseIPDB API. Массовая проверка списков IP, экспорт в CSV/JSON. Используется для …
Превращает операционную систему в реляционную базу данных: любой аспект состояния машины (процессы, сетевые соединения, установленные пакеты, …
Платформа для безопасности в реальном времени (XDR + SIEM). Мониторинг файловых изменений, обнаружение вторжений, аудит конфигураций, …
Инструмент для аудита безопасности систем (security auditing). Проверка конфигураций, правил файрвола, SSH, SSL, базы данных, веб-серверов. …
. /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/