Шаблон имени файла linux

Содержание
  1. Шаблоны подстановки в Linux
  2. Символ подстановки *
  3. Пример 1. Выводим названия файлов, начинающихся с b
  4. Как это работает
  5. Пример 2. Выводим все файлы с расширением .txt
  6. Символ подстановки ?
  7. Пример 3. Выводим все файлы с именем, вторая символ которого — i
  8. Пример 4. Выводим все файлы с расширением из 3 букв
  9. Символ подстановки []
  10. Пример 5. Выводим все файлы, имя которых начинается с s или v
  11. Пример 6. Выводим все файлы, в имени которых есть хотя бы 1 цифра
  12. Инвертированный диапазон
  13. Примеры из реальной жизни
  14. Пример 8. Выводим тип файла для каждого файла или папки в каталоге
  15. Пример 9. Перемещаем все файлы типа jpg или png в другой каталог.
  16. Пример 10. Узнаем размер и время изменения файла .bash_history в домашнем каталоге пользователя
  17. Что нужно запомнить
  18. Практические задания
  19. 3.4.5. Шаблоны имен файлов
  20. Читайте также
  21. Шаблоны
  22. 22.3.2. Разбор имен файлов
  23. Поддержка имен файлов Windows
  24. 5.7.7 Раскрытие шаблонов имен файлов и каталогов (Pathname Expansion)
  25. 2.4. Предотвращение конфликта имен с помощью пространств имен
  26. 10.10. Пространства имен и шаблоны функций А
  27. 16.12. Пространства имен и шаблоны классов
  28. Шаблоны и функции фабрики в контексте пространства имен
  29. Пример 12-43. Генератор имен файлов
  30. 18.2. Globbing — Подстановка имен файлов
  31. 13.2.2. Шаблоны
  32. Шаблоны

Шаблоны подстановки в Linux

Шаблоны подстановки (wildcards) позволяют настраивать фильтры отбора имён файлов и путей. В интернете вы можно встретить и такие названия: джокеры, шаблоны поиска, маски (хотя на самом деле это немного другое).

Как вы помните, когда мы обращаемся к файлу или каталогу в командной строке, мы фактически ссылаемся на его путь. Поэтому когда мы указываем путь, можно использовать так называемые символы подстановки в этом пути, чтобы превратить его в набор файлов или каталогов.

Вот основной набор символов подстановки:

  • * — для замены нескольких символов (в том числе 0);
  • ? — для замены одиночного символа;
  • [ ] — для замены определенного набора символов.

Символы подстановки также называют символами-джокерами.

Символ подстановки *

Давайте рассмотрим несколько примеров, которые продемонстрируют, как работает символ подстановки * (звёздочка). Он представляет собой несколько символов (в том числе 0).

Примечание. Для всех приведенных ниже примеров представьте, что мы находимся в каталоге linuxtutorialwork, в котором находятся такие файлы:
• barry.txt, blah.txt;
• bob;
• firstfile, secondfile, thirdfile;
• foo1, foo2, foo3;
• video.mpeg.

Пример 1. Выводим названия файлов, начинающихся с b

В качестве первого примера попробуем вывести все файлы, чьё название начинается с b.

1. [email protected]: pwd
2. /home/karpaff/linuxtutorialwork
3. [email protected]:
4. [email protected]: ls b*
5. barry.txt blah.txt bob
6. [email protected]:

Как это работает

На первый взгляд может показаться, что приведенная выше команда ls получает аргумент b* , а затем переводит его в требуемые совпадения.

На самом деле это bash (программа, предоставляющая интерфейс командной строки) выполняет перевод за нас. Когда мы вводим эту команду, bash видит, что мы использовали символы подстановки, и поэтому перед запуском команды (в данном случае ls ) заменяет шаблон каждым файлом или каталогом (то есть путем), который соответствует этому шаблону.

  1. Мы вводим команду: ls b*
  2. Система переводит эту команду в такой вид: ls barry.txt blah.txt bob
  3. Система выполняет команду из пункта 2.
Читайте также:  Сбросить настройки vlc linux

Сама команда не видит символы подстановки и не знает, что мы их применяли. Это означает, что мы можем использовать их в командной строке когда угодно.

Примечание. Обратите внимание, что мы используем ls в примерах просто потому, что это удобный способ проиллюстрировать работу подстановки. Символы подстановки можно использовать с любой командой.

Пример 2. Выводим все файлы с расширением .txt

Давайте попробуем вывести все файлы с расширением .txt . В этом примере мы используем абсолютный путь. Обратите внимание, что шаблон подстановки работает одинаково, и с абсолютными, и с относительными путями.

1. [email protected]: ls /home/karpaff/linuxtutorialwork/*.txt
2. /home/karpaff/linuxtutorialwork/barry.txt /home/karpaff/linuxtutorialwork/blah.txt
3. [email protected]:

Символ подстановки ?

Теперь давайте рассмотрим, как работает символ ? (знак вопроса). Он представляет собой 1 любой символ.

Пример 3. Выводим все файлы с именем, вторая символ которого — i

В примере ниже мы выведем все файлы с именем, второй символ равен i. Как видите, шаблон можно строить с помощью нескольких символов подстановки.

1. [email protected]: ls ?i*
2. firstfile video.mpeg
3. [email protected]:

Пример 4. Выводим все файлы с расширением из 3 букв

Теперь выведем все файлы с расширением из трех букв. Обратите внимание, что video.mpeg не подходит, поскольку имя пути должно точно соответствовать заданному шаблону.

1. [email protected]: ls *. 
2. barry.txt blah.txt example.png frog.png
3. [email protected]:

Символ подстановки []

И, наконец, символ подстановки [] (квадратные скобки) — для диапазона. В отличие от двух предыдущих символов подстановки, которые позволяли задать несколько символов, [] позволяет задать набор символов.

Давайте выведем все файлы, имя которых начинается с s или v.

Пример 5. Выводим все файлы, имя которых начинается с s или v

1. [email protected]: ls [sv]*
2. secondfile video.mpeg
3. [email protected]:

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

Пример 6. Выводим все файлы, в имени которых есть хотя бы 1 цифра

1. [email protected]: ls *9*
2. foo1 foo2 foo3
3. [email protected]:

Инвертированный диапазон

Мы также можем использовать инвертированный диапазон, используя знак ^ (каретка). Он позволяет искать символы, которые не входят в заданный диапазон.

1. [email protected]: ls [^a-k]*
2. secondfile thirdfile video.mpeg
3. [email protected]:

Примеры из реальной жизни

Приведенные выше примеры иллюстрируют работу символов подстановки. В реальной работе люди используют их повсюду, поэтому вот несколько примеров, которые покажут вам, что еще можно делать с шаблонами.

Помните, что это лишь небольшие кейсы, в которых могут пригодиться wildcards. На самом деле, шаблоны удобно использовать в практически любой ситуации.

Пример 8. Выводим тип файла для каждого файла или папки в каталоге

1. [email protected]: file /home/karpaff/*
2. bin: directory
3. Documents: directory
4. frog.png: PNG image data
5. public_html: directory
6. [email protected]:

Пример 9. Перемещаем все файлы типа jpg или png в другой каталог.

1. [email protected]: mv public_html/*. g public_html/images/
2. [email protected]:

Пример 10. Узнаем размер и время изменения файла .bash_history в домашнем каталоге пользователя

.bash_history — это файл в домашнем каталоге пользователя, который хранит историю команд, введенных пользователем в командной строке. Это скрытый файл.

Читайте также:  Rsa key generator linux

Как вы можете видеть в этом примере, мы можем использовать подстановочные знаки в любой точке пути.

1. [email protected]: ls -lh /home/*/.bash_history
2. -rw------- 1 harry users 2.7K Jan 4 07:32 /home/karpaff/.bash_history
3. -rw------- 1 ryanusers 3.1K Jun 12 21:16 /home/andrew/.bash_history
4. [email protected]:

Что нужно запомнить

Можно использовать в любом месте пути файла
Символы подстановки могут использоваться в любой части пути.

Можно использовать везде, где есть путь
Поскольку подстановка символов выполняется системой, а не командой, шаблоны подстановки могут использоваться везде, где используется путь.

Практические задания

Хороший каталог, на котором можно попрактиковаться — это /etc, который содержит файлы конфигурации системы. Как обычный пользователь, вы можете просматривать файлы, но не можете вносить какие-либо изменения, поэтому случайно повредить данный каталог не получится.

Выведите содержимое каталога и посмотрите, что там находится. Затем выберите несколько файлов и подумайте, можно ли создать шаблон для выбора только этих файлов.

  1. Выведите список файлов с определенным расширением.
  2. Выведите файлы, расширение которых состоит только из трех букв.
  3. Выведите файлы, имя которых содержит заглавную букву (подсказка: используйте конструкцию [[: upper:]])
  4. Выведите файлы, имя которых состоит из четырех символов.

СodeСhick.io — простой и эффективный способ изучения программирования.

2023 © ООО «Алгоритмы и практика»

Источник

3.4.5. Шаблоны имен файлов

Этот механизм позволяет не перечислять похоже выглядящие имена файлов и каталогов, а указать на целую группу имен, задав краткий образец. Перед отправкой команды на выполнение оболочка раскрывает шаблон, то есть заменяет образец всеми именами, подходящими под этот образец, и выполняет команду для каждого файла или каталога из этой группы. Шаблоны указываются с помощью специальных символов, перечисленных в таблице 3.3. Символы шаблона можно комбинировать в одной команде.

Символы шаблонов Таблица 3.3

Символ Значение Пример * Произвольная строка символов, в том числе пустая ~/*.png — все файлы в домашнем каталоге с расширением png; Glava* — файлы Glava, Glava03 и Glava.old ? Любой одиночный символ Glava?? — файлы Glava03 и GlavaXZ, но не Glava и не Glava.old [m,M,x] Любой символ ив перечисленных в скобках Glava0[3,8] — файлы Glava03 и Glava08, Glava?[3,8] — файлы Glava03, Glava08, Glava13, Glava18, Glava23 [a-nA-N] Любой символ ив указанных интервалов Glava0[2-4,9] — Glava02, Glava03, Glava04, Glava09 [^a-n,x,y] Любой символ, на указанный в скобках Glava[^0]* — все главы, начиная с 11

Символы шаблона можно использовать и как обычные символы в именах файлов. Тогда их нужно экранировать, чтобы оболочка не приступила к их раскрытию:

$ touch * # создаст файл с именем «*». Только не

# удаляйте его потом командой rm * !

$ rm Glava0[3,8] # удалит файл с именем Glava0[3,8],

Данный текст является ознакомительным фрагментом.

Читайте также

Шаблоны

Шаблоны Делать работу, которая до этого уже была выполнена другими, – напрасная трата времени и сил. Ваши усилия, затраченные на оформление списка приглашенных на вечеринку, можно направить на другие неотложные дела, если воспользоваться подсистемой шаблонов. Созданные

Читайте также:  Linux disk performance test

22.3.2. Разбор имен файлов

22.3.2. Разбор имен файлов Абсолютно обычным действием для привилегированных приложений является предоставление доступа к файлам ненадежным пользователям и разрешение этим пользователям передавать имена файлов, к которым необходим доступ. Хорошим примером служит

Поддержка имен файлов Windows

Поддержка имен файлов Windows В системах Linux и Windows действуют разные соглашения по именованию файлов. Если в вашей сети, кроме Windows, присутствуют также клиенты DOS, то при настройке Samba следует учесть, что правила именования DOS-файлов отличаются от правил, принятых не только в

5.7.7 Раскрытие шаблонов имен файлов и каталогов (Pathname Expansion)

5.7.7 Раскрытие шаблонов имен файлов и каталогов (Pathname Expansion) Подстановки имен путей и файлов (Pathname expansion) используются для того, чтобы с помощью краткого образца или шаблона указать несколько имен файлов (или каталогов), соответствующих данному шаблону. После разделения

2.4. Предотвращение конфликта имен с помощью пространств имен

2.4. Предотвращение конфликта имен с помощью пространств имен ПроблемаВ несвязанных между собой модулях обнаружены конфликтующие имена или требуется заранее избежать возможности таких конфликтов, создав логические группы кода.РешениеДля структурирования кода

10.10. Пространства имен и шаблоны функций А

10.10. Пространства имен и шаблоны функций А Как и любое другое глобальное определение, шаблон функции может быть помещен в пространство имен (см. обсуждение пространств имен в разделах 8.5 и 8.6). Мы получили бы ту же семантику, если бы определили шаблон в глобальной области

16.12. Пространства имен и шаблоны классов

16.12. Пространства имен и шаблоны классов Как и любое определение в глобальной области видимости, определение шаблона класса можно поместить внутрь пространства имен. (Пространства имен рассматривались в разделах 8.5 и 8.6.) Наш шаблон будет скрыт в данном пространстве имен;

Шаблоны и функции фабрики в контексте пространства имен

Шаблоны и функции фабрики в контексте пространства имен (Врезка)В основной статье, я утверждаю, что статические методы классов должны быть реализованы как внешние функции всякий раз, когда это возможно, потому что это увеличивает инкапсуляцию класса. Здесь я

Пример 12-43. Генератор имен файлов

Пример 12-43. Генератор имен файлов #!/bin/bash# tempfile-name.sh: Генератор имен временных файловBASE_STR=`mcookie` # 32-символьный (128 бит) magic cookie.POS=11 # Произвольная позиция в строке magic cookie.LEN=5 # $LEN последовательных символов.prefix=temp # В конце концов это временный («temp»)

18.2. Globbing — Подстановка имен файлов

18.2. Globbing — Подстановка имен файлов Bash, сам по себе, не распознает регулярные выражения. Но в сценариях можно использовать команды и утилиты, такие как sed и awk, которые прекрасно справляются с обработкой регулярных выражений.Фактически, Bash может выполнять подстановку имен

13.2.2. Шаблоны

13.2.2. Шаблоны Вы хотите создать стандартный документ, например резюме, служебную записку, отчет? Тогда вам пригодятся стандартные шаблоны MS Word. Выполните команду Файл, Создать. В правой части окна Word появится окошко Создание документа, в котором можно выбрать один из

Шаблоны

Шаблоны Шаблон – это своего рода набросок, который можно изменить под конкретные нужды. Очень часто вам придется писать однотипные сообщения вроде «Привет. Как дела?» или «Я сегодня занят. Когда освобожусь – перезвоню!». Вы можете облегчить себе жизнь, записав подобные

Источник

Оцените статью
Adblock
detector