Когда вы изучаете Bash, одна из самых основных команд, которую вам нужно освоить, — это ls, которая будет отображать содержимое каталога. Есть много опций, которые вы можете включить при отображении списка, поэтому я приглашаю вас прочитать справочную страницу для этой команды, поскольку здесь мы напишем ее просто и конкретно.

Как следует из названия, команда, о которой я буду говорить, выглядит так:

$ ls *.c

Глядя на синопсис команды ls, мы видим:

ls [ВАРИАНТ]… [ФАЙЛ]…

Это означает, что мы можем дополнительно включить один или несколько параметров и/или один или несколько файлов или каталогов при выполнении команды. Поскольку параметры начинаются с одного или двух дефисов (- или --), мы можем сделать вывод, что часть *.c будет относиться к файлу или каталогу.

Если вы не знаете, что делает *, советую вам прочитать про Подстановочные знаки, но в основном они будут соответствовать любым символам. При использовании отдельно в качестве шаблона в любой команде, которая принимает аргументы имени файла, он будет соответствовать всем именам файлов. В сочетании с частью .c он будет соответствовать любому файлу или каталогу, оканчивающемуся на '.c'. Это означает, что он будет соответствовать файлам типа filename.c или каталогам типа directory.c.

При объединении, поскольку ls *.c будет соответствовать именам файлов и папок, будут перечислены все файлы в текущем каталоге, которые заканчиваются на .c, и будут перечислены все файлы в подкаталогах, имена которых заканчиваются на .c.

Проиллюстрируем это на примере:

Как видно выше, в текущем каталоге находится /home/vagrant/ls и внутри него есть только один файл, оканчивающийся на .c: файл testfile2.c; и есть две папки с именами, оканчивающимися на .c: testdir3.c и testdir4.c. Содержимое этих файлов также отображается: testdir3.c пусто, а каталог testdir4.c содержит 5 разных файлов.

Таким образом, когда вы используете команду ls с *.c, она выводит список всех файлов, оканчивающихся на .c в текущем каталоге ивсе содержимое каталогов, имена которых заканчиваются на .c.

Дайте мне знать в комментариях, если вы найдете это полезным!