Из сообщения об ошибке может показаться, что каталог /var/log/trafficserver/
не существует или, по крайней мере, find
не может получить к нему доступ.
И я предполагаю, что сообщение об ошибке появляется после ввода пробела, потому что пробел связан с виджетом, который автоматически пытается расширить псевдонимы. Если ваш псевдоним обычно заменяется их полной командой, то это определенно так. В противном случае вы можете проверить это с
bindkey " "
Если виджет не связан с Space, это должно отобразиться
" " self-insert
Это также может показать
" " magic-space
Это внутренний виджет, который расширяет ссылки на историю (например, !!
) прежде чем также вставить пробел. Но это не влияет на псевдонимы.
Если он показывает что-то еще, это, скорее всего, виджет, который расширяет псевдоним. Конечно, основная проблема заключается в том, что каталог не существует или недоступен.
Кроме того, псевдоним, кажется, в порядке и работает для меня, хотя мне пришлось изменить -f 9
на -f 8
, так как find возвращает только восемь полей для меня, вероятно, из-за различных настроек локали. Но я бы посоветовал использовать глобальные квалификаторы zsh
для достижения того же результата менее сложным способом:
alias -g TLOGS3='/var/log/trafficserver/**/access.log*(Om[-3, -1])'
Это расширяется до списка файлов в /var/log/trafficserver
или в любом из его подкаталогов (**
), соответствующих имени access.log*
. Этот список упорядочен по убыванию (O
) по времени модификации (m
; последняя модификация - первая) и ограничен третьим последним элементом ([-3,-1]
).
Если нет подкаталогов и порядок файлов можно изменить, это можно сократить до
alias -g TLOGS3='/var/log/trafficserver/access.log*(om[1,3])'
o
порядки по возрастанию, так что элементы с первого по третий являются тремя самыми новыми.