--- aliases: - globbing tags: - maturity/🌱 date: 2024-11-14 --- Глоббинг (globbing) — это техника, используемая в командной оболочке Linux (и других UNIX-подобных системах) для поиска файлов, используя шаблоны вместо перечисления имен файлов. Паттерны глоббинга помогают выполнять операции с несколькими файлами за один раз, что делает работу удобнее и эффективнее. **Базовые паттерны глоббинга:** - `*` — Совпадает с любым количеством символов (включая ноль символов). Пример: `file*` найдет `file1.txt`, `fileA`, и любые другие файлы, начинающиеся на "file". - `?` — Совпадает с одним любым символом. Пример: `file?.txt` найдет файлы вроде `file1.txt` или `fileA.txt`, но не `file10.txt`. - `[abc]` — Совпадает с любым из символов, указанных в квадратных скобках. Пример: `file[abc].txt` найдет `filea.txt`, `fileb.txt`, или `filec.txt`. - `[a-z]` — Совпадает с любым символом в указанном диапазоне. Пример: `file[a-z].txt` найдет файлы, такие как `filea.txt`, `filem.txt` и т.д. - `[!abc]` или `[^abc]` — Совпадает с любым символом, не входящим в указанный список. Пример: `file[!a].txt` найдет все файлы, кроме `filea.txt`. **Комбинированные паттерны глоббинга:** - `file*` — Найдет все файлы, начинающиеся с "file". - `*.txt` — Найдет все файлы с расширением ".txt". - `file[0-9].txt` — Найдет файлы, такие как `file1.txt`, `file2.txt`, но не `fileA.txt`. - `file{1,2,3}.txt` — Найдет файлы `file1.txt`, `file2.txt`, `file3.txt`. **Расширенные паттерны глоббинга:** - `**/*.txt` — Найдет все файлы с расширением ".txt" в текущей директории и всех ее поддиректориях. - `[a-z]*` — Найдет файлы, начинающиеся с любой строчной буквы. - `[[:digit:]]*` — Найдет файлы, начинающиеся с цифры. **Использование глоббинга в командах:** - `ls *.txt` — Показать все файлы с расширением `.txt` в текущей директории. - `cp file?.txt /backup/` — Скопировать файлы, такие как `file1.txt` или `fileA.txt` в директорию `/backup/`. - `rm file[0-9]*` — Удалить файлы, начинающиеся с `file` и за которыми следует цифра. - `mv data{1,2,3}.csv /data/archive/` — Переместить файлы `data1.csv`, `data2.csv`, `data3.csv` в `/data/archive/`. - `tar -cvf archive.tar *.log` — Архивировать все `.log` файлы в `archive.tar`. **Экранирование специальных символов** Чтобы указать оболочке, что определенные символы не должны интерпретироваться как метасимволы, их необходимо экранировать с помощью обратной косой черты (`\`). - `ls \*.txt` — Найдет файл с именем `*.txt`. - `ls file\?` — Найдет файл с именем `file?`. *** ## Мета информация **Область**:: [[../../meta/zero/00 Linux|00 Linux]] **Родитель**:: **Источник**:: **Создана**:: [[2024-11-14]] **Автор**:: ### Дополнительные материалы - ### Дочерние заметки