Для чего применяются символы шаблона и
Для чего применяются символы шаблона и
Иногда при работе с файлами необходимо или возможно указывать только часть их имени или расширения. Это делается, например, для того, чтобы в параметрах программы не называть полностью имена всех файлов, над которыми производится операция, а выделить их в группу по какому-нибудь признаку (заметим, что некоторые программы работают не с единичными файлами, а с группой). Также бывает необходимо найти файл или файлы, у которых неизвестны полное имя и/или расширения. Для этих целей используют так называемые шаблоны.
C.4.2. Определение.
C.4.3. Пример шаблонов.
Шаблон | Соответствие |
boo?.tmp | book.tmp, boot.tmp, boo1.tmp и др. |
boo[tk].tmp | boot.tmp и book.tmp |
b*t.t?p | boot.tep, bat.tmp, bt.tnp и др. |
[a-c]3.bat | a3.bat, b3.bat и c3.bat |
Необходимо отметить, что шаблон нельзя начинать со знака *, если он не единственный. В этом случае все символы, стоящие после звездочки игнорируются.
Это связано с недоработкой программного обеспечения.
Также в некоторых реализациях MS-DOS игнорируются все буквы и цифры после знака *. Учитывайте это при составлении шаблонов!
Шаблоны можно указывать и в имени, и в расширении. Он также может состоять из одних только специальных символов. Например:
C.4.4. Резюме.
Шаблоны имен файлов
Bash, а также другие командные оболочки Linux и средства языков программирования позволяют находить в структуре дерева каталогов те файлы, имена которых соответствуют определенному шаблону имени файла. В случае командной оболочки именно она сравнивает с шаблоном имя очередного файла. Если оно соответствует шаблону, то файл будет учтен, если нет – будет пропущен. Шаблон можно сравнить с коробкой, в которую влезет не каждый объект. Не только из-за размеров, также из-за несовпадения формы коробки и предмета.
Зачем нужны шаблоны имен? Часто требуется выполнить однотипные действия над группой файлов. Описывать эти действия по отношению к каждому отдельному файлу было бы трудоемкой задачей. Таким образом, шаблоны позволяют выделить группу файлов, чьи имена удовлетворяют определенным условиям, из общей массы.
Кроме того, шаблоны часто используют для поиска файлов.
Шаблоны имен файлов и каталогов задаются с помощью специальных символов. Чаще используются два: * – звездочка, ? – знак вопроса.
Знаком вопроса (?) в шаблоне обозначают любой один символ. Например, под шаблон otchet. подойдут файлы, имеющие расширение из любых трех букв, но начинающиеся именно так, как задано в шаблоне. Шаблону descrip?ion.pdf будут соответствовать файлы с заданным именем, но вместо знака вопроса может стоять любой символ.
Если надо одновременно найти файлы, начинающиеся на буквы, идущие подряд в алфавите, то задается диапазон. Например, под шаблон [m-pM-P]. png подойдут все файлы с расширением png, имена которых состоят из четырех букв, причем первая буква m или n или o или p без учета регистра.
В Bash шаблоны имен используются с командами, которые в качестве аргументов принимают имена файлов. Например, ls – просмотр каталогов, cp – копирование файлов, find – поиск файлов и др. Однако на самом деле командам передается не шаблон, а уже подошедшие под него файлы. Определением подходящих под шаблон объектов занимается сама командная оболочка Linux, в данном случае Bash.
Курс с ответами к заданиям и дополнительными уроками:
android-приложение, pdf-версия.
Шаблоны имени файла
Длина (объем) файла определяется в байтах и изменяется в случае его редактирования.
Обычным.
Имя файла
Организация файловой системы
Все современные дисковые операционные системы обеспечивают создание файловой системы, предназначенной для хранения данных на дисках и обеспечения доступа к ним. Принцип организации файловой системы зависит от операционной системы. Наиболее распространенный тип — табличный.
Логическое имя винчестера – С:
Если жесткий диск разбит на несколько логических разделов, то каждый из них именуется буквами английского алфавита: С:, D:, E:, F: и т.д.
Логическое имя дисковода лазерного диска – последняя буква из списка логических имен дисков данного компьютера.
ВАК — копия ранее созданного файла;
$$$ — временный файл, автоматически созданный какой-либо программой самостоятельно.
Кроме имени, файл обладает рядом характеристик:
— дата создания файла;
— время создания и редактирования файла;
Атрибуты файла указывают на характер его использования и возможность доступа к нему:
• Read-Only — файл, использующийся только для чтения; чаще всего он не может быть уничтожен или отредактирован, но допустимо создание копии и операций над ней;
• Archive — архивный, создается при изменении файла и хранится в архиве файловой системы;
• Hidden — скрытый файл;
• System — системный.
Если файлу не присвоен ни один из перечисленных атрибутов, то он называется Дата создания и время создания фиксируются в момент создания и изменения файла по
показаниям системных часов ПК.
* – заменяет произвольное количество любых;
? – заменяет один произвольный символ.
Все файлы на дисках располагаются в каталогах или папках.
Папка (каталог, директория) – специальный файл, содержащий информацию об обычных файлах, сгруппированных в некоторый единый список по тому или иному признаку либо самим пользователем (например, служебные записки, исходящие письма, методические разработки, любимые игровые программы и т.д.), либо разработчиками ПО (набор файлов, составляющих единый программный пакет). Такое объединение файлов выполняется, как правило, с целью облегчения поиска информации на компьютере, а также для удобства групповой (одновременной) обработки обычных файлов и папок. В папке (каталоге, директории) кроме перечня входящих в него файлов содержится также системная информация относительно характеристик (атрибутов) этих файлов.
На каждом носителе информации существует главный или корневой каталог, в котором располагаются все остальные каталоги, называемые подкаталогами и некоторые файлы. Таким образом, создается иерархическая структура. Каталог, с которым в настоящий момент работает пользователь называется текущим. Внутри папки (каталога, директории) могут находиться как обычные файлы, так и вложенные в нее папки-потомки, которые в свою очередь могут содержать папки следующего уровня вложенности. Таким способом реализуется иерархическая система вложенных друг в друга папок и файлов.
Для организации доступа к файлу во многих ОС используется один и тот же метод, состоящий в формировании символьной строки – пути доступа, в которой содержится информация о местоположении файла на ВЗУ (например, С:\Program Files\Microsoft Office\Office\Samples\Products.doc). Количество файлов или папок в корневом и не корневом каталогах – не ограничено! Суммарное количество символов в пути доступа к файлу – не более 260.
Файлы и каталоги являются самыми важными объектами файловой системы. Она необходима для того, чтобы ОС имела возможность работать с данными на жестком диске.
Понятие цилиндра
Во-первых, диск представляется как набор поверхностей. У гибких дисков их всего две (верхняя и нижняя), но жесткие диски — это на самом деле «этажерки», состоящие из нескольких пластин, поэтому количество поверхностей у них больше.
Во-вторых, каждая поверхность диска разделяется на кольцевые дорожки, а каждая дорожка — на секторы. Размеры секторов фиксированы и равны 512 байт.
Чтобы найти на диске тот или иной файл, надо знать, где он расположен, то есть, нужен его адрес. Проще всего было бы записать адрес файла в виде номера поверхности, номера дорожки и номера сектора, но на самом деле это выполняется не совсем так. Дело в том, что у каждой поверхности есть своя головка для чтения/ записи, и эти головки перемещаются не порознь, а одновременно. То есть, если, например, пятая головка подводится к тридцатой дорожке, то и все головки подводятся к своим тридцатым дорожкам. Поэтому вместо понятия дорожки используют понятие цилиндра. Цилиндр— это совокупность всех дорожек, имеющих одинаковые номера, то есть равноудаленных от оси вращения. Поэтому реально местоположение файла на жестком диске определяется номером цилиндра, номером поверхности и номером сектора.
Данные о том, в каком кластере диска начинается тот или иной файл, хранятся в системной области диска в специальных таблицах размещения файлов (FAT-таблицах). Поскольку нарушение FAT-таблицы приводит к невозможности воспользоваться данными, записанными на диске, к ней предъявляются особые требования надежности, и она существует в двух экземплярах, идентичность которых регулярно контролируется средствами операционной системы.
В настоящее время операционные системы Windows 98, Windows 2000 и Windows Millenium обеспечивают более совершенную файловую систему — FAT32 с 32-разрядными полями в таблице размещения файлов. Это позволяет работать с любыми современными жесткими дисками.
Файлы и каталоги являются самыми важными объектами файловой системы. Она необходима для того, чтобы ОС имела возможность работать с данными на жестком диске.
Существует множество файловых систем, которые используют различные операционные системы. Основными из них являются файловые системы FAT32 и NTFS, с которыми работают операционные системы класса Windows.
Основой FAT32 являются:
В апреле 1987 года Microsoft и IBM начали совместную разработку новой ОС OS/2. Под эту систему специально была разработана файловая система, призванная обеспечить стабильную и быструю работу с диском и облегчить труд администраторов. Но затем между фирмами возникли разногласия, в результате чего свет увидели OS/2 с файловой системой HPFS от IBM и Windows NT с файловой системой NTFS (New Technology File System) от Microsoft.
Основой NTFS является главная таблица файлов (Master File Table, MFT). MFT резервирует под себя примерно 12% раздела. Если места на диске становится мало, MFT сокращается в 2 раза, после появления вновь восстанавливается и т.д. Файлы здесь состоят из двух частей: обязательной записи о них в MFT и опциональных параметров (свойств), называемых потоками.
Урок 14
§ 12. Файловая система
Содержание урока
Маски имен файлов
§ 12. Файловая система
Маски имен файлов
Для выбора группы файлов применяются маски (шаблоны). Кроме символов, которые допустимы в именах файлов, маска может включать два специальных символа: знак «*» заменяет любое количество любых символов (в том числе и отсутствие символов), а знак «?» — один любой символ. Приведём несколько примеров:
*.* — все файлы;
*.bmр — все файлы с расширением bmp;
а*.? — файлы, имя которых начинается с буквы «а», а расширение состоит из одного символа
*х*. * — файлы, в имени которых есть буква «х», а расширение содержит не менее двух символов;
*zy.a? — файлы, имя которых заканчивается на «zy», а расширение начинается с буквы «а» и состоит из двух символов.
Маски можно использовать для копирования (перемещения, удаления) целой группы файлов. Например, по команде
copy *.jpg arc
все файлы с расширением jpg из текущего каталога будут скопированы в подкаталог arc.
Маски часто применяют для поиска файла по известной части имени или по расширению. Например, для того чтобы найти все документы, имя которых содержит слово «план», можно использовать маску *план*dос*. При этом будут найдены, например, такие файлы:
план2017.dос
Самый важный план.dосх
Новый план (март 2017).dосх
Следующая страница Выводы. Интеллект-карта
Cкачать материалы урока
Linux шаблоны имен файлов
Linux шаблоны имен файлов — определённые символьные последовательности дающие возможность обращаться к более чем одному файлу по имени с использованием специальных символов — шаблонов. С помощью этих шаблонов (wildcards) можно обращаться ко всем файлам, имена которых содержат символы указанные в шаблоне; важное свойство большинства командных оболочек системы Linux.
Шаблоны имен файлов строятся с помощью специальных символов «*» и «?». Значок «*» используется для замены произвольной строки символов. В Linux
Кроме «*» и «?» в Linux при задании шаблонов имен можно использовать квадратные скобки [], в которых дается либо список возможных символов, либо интервал, в который должны попадать возможные символы. Например, [abc]* соответствует всем именам файлов, начинающимся с a, b, c; *[I-N1-3] соответствует файлам, имена которых оканчиваются на I, J, K, L, M, N, 1, 2, 3.
Подробнее
Шаблон * обозначает любой символ или строку символов в имени файла. Когда в имени файла используется символ *, командная оболочка заменяет его на всевозможные варианты, которые встречается в именах файлов в рассматриваемом каталоге.
Приведём простой пример. Допустим, у пользователя Ларри в
текущем каталоге имеются файлы frog, joe и
Для того, чтобы обратиться ко всем файлам, в имени которых
содержится символ o, надо использовать команду
Можно видеть, что всякий раз, когда в имени встречается символ
*, он заменяется всеми возможными вариантами, которые
встречаются в именах файлов в текущем каталоге.
Шаблон, состоящий из единственного символа *,
подходит ко всем именам файлов, поскольку этому шаблону подходят
все последовательности символов. Пример:
Приведём ещё несколько примеров:
расширяется командной оболочкой в команду
Сделаем важное замечание о шаблоне *: он не распознает
Приведём пример. Раньше мы говорили, что в каждом каталоге есть
два специальных элемента: элемент . обозначает текущий каталог, а элемент .. обозначает родительский каталог. Однако, при использовании команды ls эти два
элемента в списке не появляются:
Однако, если с командой ls использовать опцию -a, то имена
файлов, начинающихся с символа ., окажутся в списке. Попробуем
Этот список содержит два специальных элемента:
. и .., а также два других « скрытых » файла: .bash_profile и .bashrc. Эти два файла являются файлами начальной конфигурации для командной оболочки bash и читаются
при входе пользователя larry в систему.
Заметим, что когда мы использовали шаблон *, в списке не
появилось ни одного файла, имя которого начиналось с символа
Это предусмотрено механизмом безопасности: если бы шаблон
* подходил бы и к именам файлов, начинающихся символом ., он бы также подходил и к именам каталогов . и ... Это было бы опасно при
использовании некоторых команд.
Ещё одним специальным символом в шаблонах является символ
?. Шаблон ? расширяется до ровно одного символа. Таким образом, команда ls ? выведет список всех файлов, имена которых состоят из одного символа. Команда ls termca? включит в список файл termcap, но не включит файл termcap.backup. Приведём ещё один
Как мы видим, шаблоны позволяют обращаться сразу к нескольким
файлам. Например, выше уже говорилось, что команды cp и mv в действительности могут копировать или переносить больше одного
файла за один раз. Например, команда
копирует все файлы в каталоге /etc, имя которых начинается с
символа s, в каталог /home/larry. В действительности, формат
команды cp является следующим:
где files — список имён файлов, которые надо копировать, а destination — файл или каталог, куда надо копировать. Команда mv имеет аналогичный синтаксис.
При копировании или переносе более чем одного файла аргумент
destination должен быть именем каталога. Только ровно один
файл может быть скопирован или перенесён в другой файл.