Про шаблони підстановки (wildcards) в Linux

Шаблони підстановки (wildcards) в Linux використовуються для зручної роботи з файлами та каталогами в командному рядку. Вони дозволяють писати команди, які можуть застосовуватися до багатьох файлів або каталогів одночасно, не перераховуючи їх вручну.

Основні типи шаблонів підстановки.

  1. Зірочка (*)

    • Підставляє будь-яку кількість символів, включаючи жодного.
    • Приклад: *.txt — всі файли з розширенням .txt.
    • Приклад: abc* — всі файли, які починаються з abc, наприклад, abc, abc.txt, abc123.
  2. Знак питання (?)

    • Підставляє будь-який один символ.
    • Приклад: file?.txt — файли з назвами на зразок file1.txt, file2.txt, але не file12.txt.
  3. Квадратні дужки ([])

    • Підставляють один символ з вказаного набору символів.
    • Приклад: file[123].txt — файли file1.txt, file2.txt, або file3.txt.
    • Можна також вказувати діапазон: file[a-c].txt еквівалентно file[a-b-c].txt.
  4. Заперечення ([^])

    • Підставляє один символ, який не входить до вказаного набору.
    • Приклад: file[^0-9].txt — усі файли з назвою file, які не закінчуються на цифру.
  5. Фігурні дужки ({})

    • Використовуються для перелічення різних можливих підстановок. Вони підставляють кожен з перелічених варіантів.
    • Приклад: file{1,2,3}.txt — файли file1.txt, file2.txt, file3.txt.
    • Можна використовувати діапазон: {a..z} або {1..10}.
  6. 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.

Шаблони підстановки дозволяють ефективно працювати з великою кількістю файлів та каталогів, знижуючи необхідність виконувати багаторазові однотипні команди.