52 lines
4.2 KiB
Markdown
52 lines
4.2 KiB
Markdown
---
|
||
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]]
|
||
**Автор**::
|
||
### Дополнительные материалы
|
||
-
|
||
|
||
### Дочерние заметки
|
||
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||
|