Відповідно до сторінки bash man:
bash сканує кожне слово для символів *,? та [. Якщо з’являється один із цих символів, то слово вважається візерунком і замінюється алфавітно відсортованим списком імен файлів, що відповідають шаблону
і з інформаційного вузла для ls
Програма `ls 'містить інформацію про файли (будь-якого типу, включаючи каталоги). Опції та аргументи файлів можна змішувати як завгодно, як завжди.
Для необов'язкових аргументів командного рядка, що є каталогами, за замовчуванням 'ls' перераховує вміст каталогів, а не рекурсивно та опускаючи файли з іменами, що починаються з '.' Для інших аргументів, які не є параметрами, за замовчуванням `ls 'перераховує лише ім'я файлу. Якщо аргументи необов'язкові не вказані, 'ls' перераховує вміст поточного каталогу.
тож коли ви даєте ls d*
, d * розширюється на відсортований список усіх імен файлів / директорій, починаючи з d. Так ти командуєш
ls dump
а як dump - назва каталогів, то ви отримуєте список усіх файлів у каталозі "dump", але коли ви даєте ls D*
, D * розширюється на " Dropbox завантаження документів на робочий стіл ", так команда стає
ls Desktop Documents Downloads Dropbox
і оскільки всі це каталоги, ви отримуєте перелік файлів в окремих каталогах. Якби у поточному каталозі був файл, починаючи з D, він був би окремо вказаний.