File Globbing
This commit is contained in:
parent
53849bae6b
commit
cc326d98d5
51
dev/linux/File Globbing.md
Normal file
51
dev/linux/File Globbing.md
Normal file
@ -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]]
|
||||||
|
**Автор**::
|
||||||
|
### Дополнительные материалы
|
||||||
|
-
|
||||||
|
|
||||||
|
### Дочерние заметки
|
||||||
|
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->
|
||||||
|
|
Loading…
Reference in New Issue
Block a user