Intereting Posts
Почему Apple защищает авторские права на страницах lpadmin, lpq и lpstat? Как можно анализировать параметры в сценарии Bash, оставляя непризнанные параметры после «-»? Почему ln -s не говорит, что сбой при создании символической ссылки на существующий символический каталог? Открыть Link (тип 2) файлы рабочего стола из командной строки Есть ли простой в установке дистрибутив со всеми необходимыми инструментами для компиляции (make, autotools и т. Д.)? Открыть RPM на Mac? Создание области кучи / сегмента в Linux Как будет работать libpam-poldi с ecryptfs Запуск приложения через SSH с помощью DISPLAY, когда пользователь не вошел в систему Arch Linux не может войти в систему Определение формата / кодирования медиа для системы DLNA «Липкий» ключ выхода в tmux Как сжать файл в zip формат без установки zip пакета CentOS не распознает скомпилированную библиотеку наддува Fedora 8 в последнее время очень медленно замедляется с частыми заморозками

Unix: Что произойдет, если я введу ls -d *

Будет ли он просто игнорировать бит после опции -d, поскольку вы не можете размещать символы лексически между 2 и q?

Да символы могут быть расположены лексически между 2 и q. Сделайте ls /bin и вы увидите, что цифры идут до букв. Фактически вы можете сделать ls /bin/[2-q]* и сами убедиться, что происходит.

Лексическая сортировка в локали «C» имеет значение ASCII, поэтому «2» равно 32 десятичным, а «q» – 71. Сделайте man ascii чтобы увидеть всю таблицу ASCII.

Возможно, вы хотели спросить, что произойдет, если вы укажете нелегальный лексический диапазон? Вы можете попробовать:

% ls / bin / [q-2] *
ls: невозможно получить доступ / bin / [q-2] *: нет такого файла или каталога

Конечно, ваша оболочка расширяет этот шаблон (так называемое расширение GLOB-файла), поэтому ошибка, которую вы видите, может зависеть от ваших параметров оболочки и оболочки. В моем случае я использую zsh и устанавливаю zsh параметры для прохождения через шаблоны, которые не могут быть GLOB, расширены непосредственно к вызываемой команде, а не генерируют ошибку оболочки, которая прерывает выполнение команды.