Когда вы изучаете 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
.
Дайте мне знать в комментариях, если вы найдете это полезным!