Я почти уверен, что вы достигнете предела, когда у вас закончится RAM для задействованных структур данных ядра. Возможно, архитектура процессора может иметь значение (например, потому что структуры данных имеют другой размер или должны быть выровнены по-другому), но какой именно процессор x86_64 у вас не имеет значения.
32-разрядная платформа может ограничить вас до 2 31 -1 (т. Е., MAXINT), но у вас наверняка сначала закончится ОЗУ - дескриптор файла занимает более двух байтов ОЗУ. (Конечно, вы работаете на 64-битной платформе, а 2 63 -1 - абсурдное количество файлов, которые нужно открыть)
Я признаюсь, что не знаю, как вычислить это число - и это, безусловно, зависит от типа файлового дескриптора; Использование памяти ядра, безусловно, отличается, если это TCP-сокет, открытый локальный файл (может даже отличаться в зависимости от файловой системы), канал и т. д.
Честно говоря, я бы посоветовал вам запустить временный экземпляр EC2 (с тем же типом машины) ,установите предел до абсурдно высокого значения и проверьте.
Пользователи являются допустимыми параметрами для команды cd
, и поэтому предлагаются в качестве завершения, поскольку у вас включена опция cdable_vars
. С этой опцией cd foo
можно использовать вместо cd ~foo
, что позволяет foo
быть всем, что может быть tilde-expanded, включая имя пользователя или имя каталога, заданное hash -d
(но не переменные оболочки, несмотря на название опции).
В коде завершения нет опции, позволяющей разрешить именованные каталоги, но не пытаться их завершить. Это можно обойти с помощью обертки к функции завершения для cd
.
unset -f _cd
autoload -U _cd
functions[_cd_orig]=_cd
_cd () {
setopt local_options no_cdable_vars
_cd_orig $@[@]
}
Параметр cdablevars
отвечает за создание именованных каталогов и, следовательно, пользователей в качестве допустимого аргумента для cd. Если вы этого не используете, используйте unsetopt cdablevars
.
Чтобы изменить то, что завершено для компакт-диска, вы можете использовать стиль tag-order
. Например, чтобы сначала попробовать только локальные каталоги, это будет:
zstyle ':completion:*:cd:*' tag-order local-directories
Удобное сочетание клавиш для просмотра применимых тегов в определенном контексте - нажать Ctrl-X h
вместо вкладки
.