Я полагаю, что из ваших фраз вы ожидали получить один результат:
# ls ?tc
etc
но вы на самом деле получили несколько результатов.
Знак вопроса является символом сглаживания, как определено:
?
джокер. ? символ служит односимвольным "подстановочным знаком" для расширения имени файла в глобализации, а также представляет один символ в расширенном регулярном выражении.
То, что произошло, это то, что подстановочный знак был расширен оболочкой (предположительно bash) перед передачей в ls 1. Так ls относились к нему , как:
# ls etc
Который возвратил бы много «файлов и папок 2 » из /etc
1: Вы можете проверить, что расширение происходит перед выполнением команды, попробовав: echo * - это будет (должно!) возвратите файлы и каталоги в текущем каталоге.
2 : Если вы хотите разобраться с командной строкой, предпочитайте термин «каталог», а не «папка» :-)