From cc326d98d57d5b027c90af3d0e5d278e66c9c031 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Sun, 17 Nov 2024 19:37:38 +0300 Subject: [PATCH] File Globbing --- dev/linux/File Globbing.md | 51 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 dev/linux/File Globbing.md diff --git a/dev/linux/File Globbing.md b/dev/linux/File Globbing.md new file mode 100644 index 00000000..8acd25d8 --- /dev/null +++ b/dev/linux/File Globbing.md @@ -0,0 +1,51 @@ +--- +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]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + +