pwncollege
DojosLeaderboardCommunity
Back to linux

Linux глоббинг

linux
0/10 challenges completed

Данный модуль посвещено глоббингу (globbing) в Linux - механизму командной оболочки bash, который позволяет выбирать группы файлов или каталогов по шаблону Даже пройдя всего несколько уровней, Вы уже могли устать каждый раз полностью прописывать все эти пути к файлам, время это автоматизировать. Давайте разберемся как это работает.

Когда вы вводите команду со спецсимволами (джокерами), оболочка сама находит все подходящие имена файлов и подставляет их в команду перед её выполнением.

Основные символы глоббинга:

  • * (звездочка) — любое количество любых символов (включая ноль).
    Пример: ls *.jpg — покажет все файлы с расширением .jpg

  • ? (вопросительный знак) — строго один любой символ.
    Пример: ls file?.txt — найдет file1.txt, но не file12.txt

  • [ ] (квадратные скобки) — один символ из указанного набора или диапазона.
    Пример: ls [a-c]* — файлы, начинающиеся на a, b или c.ls [!0-9]* — файлы, которые не начинаются с цифры

  • { } (фигурные скобки) — перечисление вариантов (строго говоря, это brace expansion, но часто используется вместе с глоббингом).
    Пример: cp {file1,file2}.txt backup/ — скопирует оба файла

Важные особенности:

  • Скрытые файлы: По умолчанию * не находит файлы, начинающиеся с точки (например, .bashrc). Для их поиска нужно явно указывать точку в начале: ls .*.
  • Пустые совпадения: Если ни один файл не подходит под шаблон, bash по умолчанию передаст команде сам шаблон как строку (например, ls *.abc выдаст ошибку, что файл *.abc не найден).

ПРИМЕЧАНИЕ:
Раздел, посвящённый расширениям оболочки в справочном руководстве по bash, может оказаться весьма полезным.


Давайте закрепим и углубим знания на практике.

1
Сопоставление с *
2
Сопоставление с ?
3
Сопоставление с []
4
Сопоставление путей с []
5
Несколько шаблонов (globs)
6
Комбинирование шаблонов
7
Исключающий глоббинг
8
Дополнение по Tab
9
Несколько вариантов дополнения по Tab
10
Дополнение по Tab для команд