Почему dir *. * Перечисляет все файлы и папки?
Иногда вы можете столкнуться с неожиданными результатами при выполнении команд, поэтому изучение «почему» за результатами может быть очень интересным. Учитывая это, в сегодняшнем посте SuperUser Q & A есть ответ на вопрос любопытного читателя..
Сегодняшняя сессия вопросов и ответов пришла к нам благодаря SuperUser - подразделению Stack Exchange, группе веб-сайтов вопросов и ответов, управляемой сообществом..
Вопрос
Читатель SuperUser Luu Vinh Phuc хочет знать, почему dir *. * Перечисляет все файлы и папки:
Когда я запускаю команду dir *. *, Она дает неожиданные результаты. Даже файлы и папки без каких-либо точек в списке. Например:
Это почему? Есть ли способ перечислять только файлы с точкой?
Почему dir *. * Выводит список всех файлов и папок??
Ответ
Участник SuperUser Fleet Command имеет ответ для нас:
Команда DIR приходит со времени, когда:
- Точка (.) Не допускается в качестве символа в именах файлов или папок.
- Имена файлов и папок были ограничены 8 символами для имен и 3 символами для расширений
Следовательно, под этим стандартом *. * Подразумевает любое имя и любое расширение. Это не означает строку, содержащую «.», Которая может содержать или не содержать символы до или после «.».
Политика Microsoft сохраняет обратную совместимость, поэтому интерпретация *. * Сохраняется. Но в Windows PowerShell *. * Означает строку, содержащую «.», Которая может содержать или не содержать символы до или после «.».
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полным обсуждением здесь.