Шаблони підстановки (wildcards) в Linux використовуються для зручної роботи з файлами та каталогами в командному рядку. Вони дозволяють писати команди, які можуть застосовуватися до багатьох файлів або каталогів одночасно, не перераховуючи їх вручну.
Основні типи шаблонів підстановки.
-
Зірочка (
*
)- Підставляє будь-яку кількість символів, включаючи жодного.
- Приклад:
*.txt
— всі файли з розширенням.txt
. - Приклад:
abc*
— всі файли, які починаються зabc
, наприклад,abc
,abc.txt
,abc123
.
-
Знак питання (
?
)- Підставляє будь-який один символ.
- Приклад:
file?.txt
— файли з назвами на зразокfile1.txt
,file2.txt
, але неfile12.txt
.
-
Квадратні дужки (
[]
)- Підставляють один символ з вказаного набору символів.
- Приклад:
file[123].txt
— файлиfile1.txt
,file2.txt
, абоfile3.txt
. - Можна також вказувати діапазон:
file[a-c].txt
еквівалентноfile[a-b-c].txt
.
-
Заперечення (
[^]
)- Підставляє один символ, який не входить до вказаного набору.
- Приклад:
file[^0-9].txt
— усі файли з назвоюfile
, які не закінчуються на цифру.
-
Фігурні дужки (
{}
)- Використовуються для перелічення різних можливих підстановок. Вони підставляють кожен з перелічених варіантів.
- Приклад:
file{1,2,3}.txt
— файлиfile1.txt
,file2.txt
,file3.txt
. - Можна використовувати діапазон:
{a..z}
або{1..10}
.
-
Escape (‘\’)
-
Використовується як екрануючий символ, який дозволяє “втекти” від спеціального значення символа, роблячи його звичайним текстовим символом.
-
Приклад:
Екранування пробілу в імені файлу: Якщо у вас є файл з ім’ям my file.txt, і ви хочете відкрити його за допомогою команди cat, потрібно екранувати пробіл:cat my\ file.txt
Використання спеціальних символів у тексті: Якщо вам потрібно створити файл з
ім’ям, яке містить знак питання?
, як у файліquestion?.txt
, і ви хочете до нього
звернутися:touch question\?.txt
Екранування символу
$
: Якщо ви хочете вивести на екран текст, що містить
символ$
(наприклад, змінну в Bash), не інтерпретуючи його як змінну, можна
використати\
:echo "Price is \$100"
-
Приклади використання
ls *.jpg
— виведе список всіх файлів з розширенням.jpg
в поточному каталозі.rm file?.txt
— видалить файли з назвамиfile1.txt
,file2.txt
, тощо, але неfile12.txt
.cp data[0-9].csv backup/
— скопіює файлиdata0.csv
,data1.csv
, …,data9.csv
у каталогbackup
.
Шаблони підстановки дозволяють ефективно працювати з великою кількістю файлів та каталогів, знижуючи необхідність виконувати багаторазові однотипні команди.