4.2 KiB
4.2 KiB
aliases, tags, date
| aliases | tags | 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 Родитель:: Источник:: Создана:: 2024-11-14 Автор::