Сообщение что такое маска имени файла. Шаблоны в командных оболочках. Над файлами производиться различные операции

Сообщение что такое маска имени файла. Шаблоны в командных оболочках. Над файлами производиться различные операции

04.05.2019

Сегодня мы поговорим о масках имен файлов. Итак, что же это такое? Маской имени файла называется комбинация специальных символов, позволяющая легко производить массовый отбор файлов по каким-то общим признакам. Например, файлов одного типа или с похожим именем. Возможен также одновременный отбор по названным критериям.

Теперь разберемся, для чего это вообще нужно?

Во времена MS-DOS и подобных ей операционных систем, маски имен файлов использовались повсеместно. Это сегодня мы просто выделяем нужные файлы и копируем их, куда нужно. Тогда же для каждого действия вручную вбивалась соответствующая команда и применение масок имен позволяло значительно облегчить этот рутинный труд.

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

Также возможность отбор файлов по маскам используется в некоторых приложениях. Например, в программе MeinPlatz, которую мы рассматривали в статье или Recuva, о которой говорилось в статьях и .

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

Для отбора файлов по маске используются символы «?» и «*», где «*» — набор произвольных символов, а «?» — один произвольный символ.

Например, под маску *.* попадают абсолютно все файлы, поскольку набор произвольных символов указывается как для имени, так и для расширения файла.

Если же нам необходимо отобрать, скажем, все аудиозаписи формата mp3, мы можем использовать маску *.mp3.

Маска example.* позволит отобрать файлы всех типов, носящие имя example. Но стоит придать этой маске вид example*.*, и под нее начнут попадать все файлы, начинающиеся с example. Например, под этот шаблон попадут также файлы с именами example1, exampleforyou и так далее.

Со знаком «?» все то же самое, но он заменяет какой-то один символ, поэтому необходимо точно знать количество символов. В связи с этим на практике он используется значительно реже, чем «*».

Если моя статья оказалась для вас полезной, посоветуйте пожалуйста ее своим друзьям с помощью кнопок социальных сетей или просто поделившись ссылкой.

Некоторые команды (копирования, удаления, переименования) для обработки группы файлов с одинаковыми элементами в имени позволяют использовать маску – специальные символы шаблона. Символ «?» обозначает один любой символ, а символ «*» обозначает любое количество любых символов. Так, для обозначения всех файлов без расширений можно задать маску *. (пустое расширение, только точка), для обозначения всех файлов типа.TXT можно задать маску *.TXT, где указывается любое имя и расширение.TXT. Под обозначение a?.*

подходят имена a1.txt, A5, AB.doc, но не подходят a12.txt, b.doc.

Используя ранее изученные команды сохраните в файл F:\DIR_WIN.TXT отсортированный по алфавиту список файлов (оглавление, краткое, только имена файлов) диска C:, начиная с папки \WINDOWS, которые имеют расширение TXT. Результат (команды и их параметры) также запишите в журнал.

4.1.6. Ассоциация типов файлов командой консоли

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

ASSOC .TXT

ASSOC .DOC

ASSOC .MP3

ASSOC .MPG

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

MPE, .MPEG, .MGP ассоциируются по умолчанию с типом mpegfile (или GomPlayer.mpg при установке плеера GOM), который в свою очередь связывается с плеером (WMP, GOM player или др.).

Если команде ASSOC в качестве параметра задать тип (не расширение), то она вернёт его словесное описание.

Тип с программой связывает консольная программа FTYPE. Выполните команду (в качестве параметратип впишите тип, возвращённый командойASSOC .MPG ) :

FTYPE тип

Для запуска приложения с автоматической ассоциацией приложения используется команда START . Кроме этого, она предоставляет ряд удобных параметров для организации пакетного выполнения. Выполните команду:

START F:\D.TXT

Запишите, что произошло, закройте открывшееся окно.

4.1.7. Операторы использования потоков (создания конвейеров) ввода-вывода и объединения команд*

Многие команды позволяют использовать потоки (конвейеры) ввода-вывода, которые могут быть файлами или устройствами. По умолчанию существует три стандартных потока – поток ввода (STDIN 23 , №0) и два потока вывода: стандартный (STDOUT , №1) и вывода ошибок и других сообщений (STDERR , №2). По умолчанию все три стандартных потока осуществляют операции ввода/вывода через консоль24 (CON ). Если рассматривать ввод данных при выполнении команды, то вместо ввода с клавиатуры данные можно перенаправить из файла, для этого используется символ «<». Для перенаправления результатов работы команды в файл вместо экрана, используется символ «>», файл будет создан (если уже есть, то будет усечён до пустого), и в него будет записан выводимый командой текст. Двойной знак «>>» открывает поток для дозаписи, сохраняя содержимое файла. Для перенаправления ввода/вывода в параметрах команд можно использовать имена устройств (CON, NUL, PRN, LPT1, COM1 …). Для устройств операторы «>» и «>>» работают одинаково.

23 Using command redirection operators (http://technet.microsoft.com/en-us/library/bb490982.aspx )

24 Изменение системного устройства ввода/вывода по умолчанию может быть произведено командой CTTY (практически не используется).

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

Пример перенаправления результатов в файл – сохранение краткого списка папки Windows в файл WIN.DIR в корневой папке тома F: вместо вывода на экран:

DIR /b C:\WINDOWS >F:\WIN.DIR

Для дозаписи в этот файл другого списка можно повторить команду с указанием другой папки и использованием перенаправления двойным знаком «>>».

Можно заметить, что приведённая выше команда довольно полезна. Например, у вас на компьютере есть набор файлов, а ваш друг физически не может получить доступ к вашим файлам, чтобы составить список необходимых. Допустим, что файлы находятся в папке «D:\Мои файлы», и эта папка внутри имеет структуру подпапок. Командой:

DIR /S "D:\Мои файлы" > "D:\Список файлов.dir"

вы сохраните список всех файлов вместе со структурой папок в текстовый файл «D:\Список файлов.dir». Этот файл можно заархивировать и передать другу по электронной почте или на флэш-накопителе. Типdir позволяет понять, что внутри список папки, кроме того, ряд файловых менеджером (FAR manager в том числе) содержат модули расширения, позволяющие просматривать список файлов как обычную папку или архив. Таким образом, друг может выбрать нужные ему файлы и составить свой список, редактируя ваш в текстовом редакторе.

Как было сказано выше, в качестве устройства ввода используется STDIN (0), а в качестве устройств вывода два: стандартноеSTDOUT (1) и устройство вывода ошибок и других сообщенийSTDERR (2). Использование двух устройств вывода позволяет разделять вывод основной информации и сообщений об ошибках. По умолчанию операторы перенаправления вывода «>» и «>>» перенаправляют стандартный выводSTDOUT (1).

Текущим диском у вас должен быть диск F: (если это не так, перейдите на него командой F: , если текущая папка не корневая, то

вернитесь в корневую папку командой CD \ ). На этом диске отсутствует папка с именем «3» (три). Выполните командуDIR 3 . На экран будет выведено сообщение об отсутствии такой папки. Выполните команду с сохранением результата в файлDIR "3">3.dir , в этой команде имя взято

в кавычки, так как одиночная цифра перед оператором перенаправления ввода/вывода воспринимается как номер канала, что приведёт к неверному выполнению команды. Эта команда выводит основной текст команды в файл 3.dir, но сообщение об ошибке выводится на экран. Для сохранения текста и сообщений об ошибках в разные файлы используйте следующую команду: DIR "3">3.dir 2>err.txt , в ней второй оператор перенаправления вывода «2>» использует явное указание номера перенаправляемого канала, и сообщения об ошибках будут сохранены в файл err.txt, на консоль при этом ничего не выводится. Каналы можно перенаправлять друг в друга. Для сохранения всей информации в один файл выполните команду в следующем формате:DIR "3">3e.dir 2>&1 ,

в ней канал ошибок 2 перенаправляется в канал стандартного вывода 1, который в свою очередь перенаправлен в файл. Введённый слитно с номером назначения символ & позволяет определить, что задан номер канала, а не имя файла.

Командой TYPE просмотрите содержимое полученных файлов 3.dir, err.txt и 3e.dir.

Для обработки результатов команд можно использовать фильтры. Для запуска фильтров с командами используется знак сцепки «| » (операторpipe ). При сцепке нескольких команд, вывод результатов предыдущей команды перенаправляются на вход следующей команде.

Кроме оператора сцепки в конвейер «| » существуют и другие операторы объединения команд, но они не передают данные между объединяемыми командами. Для простого последовательного выполнения команд в командной строке может быть использован оператор «& »:

DIR C:\Windows &DIR C:\Windows\System32

что аналогично последовательной записи операторов:

DIR C:\Windows

DIR C:\Windows\System32

Двойной оператор «&& » позволяет выполнить вторую команду в цепочке, если первая выполнена успешно, без ошибок (код возврата содержится в переменной окружения ERRORLEVEL и при успешном завершении равен нулю). Двойной оператор «|| » наоборот, выполняет вторую команду в случае, если первая завершилась с ошибкой (значение в переменной окружения ERRORLEVEL больше нуля). В строке может быть несколько разных операторов объединения команд. В сценариях использование логических операторов сцепления позволяет избежать в некоторых случаях использование условных операторов, что упрощает код сценария и улучшает его читаемость.

Командный интерпретатор приоритетно рассматривает служебные символы «|, &, <, >» в качестве операторов, для использования этих символов в текстовых строках команд (например, echo ) текст должен быть помещён в двойные кавычки или перед служебными символами должен быть вставлен символ «^».

Системными фильтрами являются команды:

MORE (англ.: больше, ещё) – по заполнению экрана ожидает нажатия клавиши для продолжения вывода (этот фильтр удобно использовать для чтения большой справки у консольных команд, в Windows 7 для вывода справки команд по умолчанию уже включён поэкранный вывод);

SORT – производит сортировку строк с указанными параметрами;FIND – производит поиск и выборку строк по указанному критерию. Фильтры могут получать данные как с устройства ввода, так и в

качестве имени файла, указанного в качестве параметра.

Так, команда TYPE выводит текстовый файл на консоль, для поэкранного вывода большого файла можно использовать фильтр MORE:

TYPE файл.txt |MORE

Фильтр MORE получает содержимое файла через стандартный вход (STDIN ) и выводит результат на устройство стандартного вывода (STDOUT ), указание имени файла в качестве параметраMORE даст тот же результат (возможно, даже немного быстрее):

MORE файл.txt

Это справедливо и для других фильтров.

Строка конвейера команд, которая выводит сортированный список строк, содержащих «WIN» из списка папки C:\WINDOWS:

DIR C:\WINDOWS |FIND "WIN" |SORT

может быть реализована следующими командами:

DIR C:\WINDOWS > %TMP%\file1.txt

FIND %TMP%\file1.txt "WIN" > %TMP%\file2.txt &&DEL %TMP%\file1.txtSORT %TMP%\file2.txt &&DEL %TMP%\file2.txt

В приведённом выше развёрнутом примере для промежуточного хранения текста используются текстовые файлы file1.txt и file2.txt, создаваемые в папке временных файлов, которые удаляются после использования командой DEL в случае, если предыдущая команда завершилась без ошибок.

В качестве примера выполните следующие команды:

TYPE C:\Windows\System32\drivers\etc\services

TYPE C:\Windows\System32\drivers\etc\services|MORE

TYPE C:\Windows\System32\drivers\etc\services|FIND /v "udp"

TYPE C:\Windows\System32\drivers\etc\services|FIND /v "udp"| SORTFIND C:\Windows\System32\drivers\etc\services/v "udp"|SORT >F:\R.TXT

Первая команда выводит на экран содержимое текстового файла services, находящегося в папке \WINDOWS\system32\drivers\etc тома C:.

Вывод производится без пауз, причём часть текста теряется, перемещаясь за верхнюю границу окна консоли (правда, в случае большого буфера консоли, текст можно прокрутить назад). Вторая команда выводит текст поэкранно, позволяя прочесть его. Третья команда выводит все строки, не содержащие подстроки «udp» (ссылку на сетевой протокол). Четвертая команда сортирует результат. Пятая команда перенаправляет вывод результата в текстовый файл на диске F:.

Заметьте, что выполнение команд аналогично:

TYPE C:\Windows\System32\drivers\etc\services |MORE

MORE C:\Windows\System32\drivers\etc\services

также как и

TYPE C:\Windows\System32\drivers\etc\services |FIND /v "udp"FIND C:\Windows\System32\drivers\etc\services /v "udp"

Описание презентации по отдельным слайдам:

1 слайд

Описание слайда:

Файл. Маска файла. ©МБОУ «Гимназия №4» г.Чебоксары Александрова Юлия Владимировна

2 слайд

Описание слайда:

файл - область памяти, имеющая имя. Информация на дисках хранится в виде файлов. файлы имеют расширения, которые отделяются от имени точкой (например, файл music.mp3 - имеет расширение mp3). полное имя файла содержит полный путь к нему. (например, C:\music\metallica\One.mp3 - это полное имя файла One.mp3). файлы могут хранится в папках. У папок тоже есть имя. Папки иногда называют каталогами и директориями. папка, которая находится в другой папке, называется вложенной. Папка самого верхнего уровня, которая не лежит в другой папке, называется корневой или просто - корень диска. В Windows корневые каталоги обозначаются так - буква диска:\ (например, C:\ - корневой каталог диска C, E:\ - корневой каталог диска E). для выделения группы файлов удобно использовать маски. В маске можно использовать символы, которые должны быть в выделяемых именах файлов, а также специальные символы - *(звездочка) и?(знак вопроса). На месте звездочки может стоять любое количество (а может и не быть вообще) любых символов, а знак вопроса указывает, что на его месте должен стоять только один любой символ.

3 слайд

Описание слайда:

Дано дерево каталогов. Определите полное имя файла Doc3. 1) A:\DOC3 2) A:\DOC3\Doc3 3) A:\DOC3\Doc1 4) A:\TOM3\Doc3 Задание 1. 4

4 слайд

Описание слайда:

Перемещаясь из одного каталога в другой, пользователь последовательно посетил каталоги DOC, USER, SCHOOL, A:\, LETTER, INBOX. Каково полное имя каталога, из которого начал перемещение пользователь? 1) A:\DOC 2) A:\LETTER\INBOX 3) А:\SCHOOL\USER\DOC 4) А:\DOC\USER\SCHOOL Задание 2. 3

5 слайд

Описание слайда:

Для групповых операций с файлами (например, для поиска файлов) используются маски имен файлов. Маска представляет собой последовательность букв, цифр и прочих допустимых в именах файлов символов, в которых также могут встречаться следующие символы: Символ «?» (вопросительный знак) означает ровно один произвольный символ. Символ «*» (звездочка) означает любую последовательность символов произвольной длины, в том числе «*» может задавать и пустую последовательность. Маска файла

6 слайд

Описание слайда:

Например, если ввести в поиск следующею запись: gloss*.doc Будет выполнен поиск всех файлов, имена которых начинаются на «gloss», с расширением.doc, например Glossary.doc и Glossy.doc. А если ввести gloss?.doc, будет найден файл Glossy.doc или Gloss1.doc, но не Glossary.doc.

7 слайд

Описание слайда:

Поиск файлов. Найдем на диске C: файлы с расширением.doc. Выбираем Пуск - Найти - Файлы и папки…, задаем условие поиска (*.doc), поиск в – локальный диск (C:). Нажав кнопку Найти, получаем результат- все файлы с расширением.doc Задача. Найти на компьютере все файлы, удовлетворяющие заданному критерию.

8 слайд

Описание слайда:

9 слайд

Описание слайда:

1) Как будет выглядеть маска для выделения файлов с расширением jpg? Решение: В данном примере нас не интересует, сколько и какие символы будут содержаться в имени файла, поэтому маска будет выглядеть так - *.jpg 2) Как будет выглядеть маска для выделения файлов, в имени которых содержится doc? Решение: В данном случае нас не интересует расширение файлов, главное, чтобы в имени содержалось doc. Т. е. не важно, стоит ли что-то до и после doc. Маска будет выглядеть так - *doc*.* Задачи на составление масок.

10 слайд

Описание слайда:

3) Как выглядит маска для файлов, в имени которых второй символ l, пятый символ e, а третья буква в расширении c? Решение: Так как нам известны конкретные позиции букв в имени файла, использовать звездочку нельзя. Начало маски будет выглядеть следующим образом - ?l??e. После 5-го символа могут быть или не быть другие символы, поэтому после него поставим звездочку - ?l??e*. Аналогично и с расширением - ??с*. В итоге получается следующая маска?l??e*.??с*. Задачи на составление масок.

11 слайд

Описание слайда:

Определите, какое из указанных имен файлов удовлетворяет маске: A?ce*s.m* Acess.md 2) Accesst.dbf 3) Access.mdb 4) Akcces.m1 Определите, по какой из масок будет выбрана указанная группа файлов make.cpp, name.c, age.pc, name.cpp *a*e.? 2) a?e.* 3) *a?e.* 4) ?a?e.* Определите, какое из указанных имен файлов удовлетворяет маске: ?mas*.p* massiv.pas 2) mmassiv.p 3) mmassiv.cpp 4) mas.p 3 3 2

Обратим внимание на то, что три файла имеют в имени букву «t» на первом месте, а последний - на втором. Значит маску нужно начать с произвольного символа «*», а уже на второе место поставим «t». Варианты 2) и 4) нам уже не подходят. Третий символ «r» стоит во всех файлах на одном и том же месте. Несовпадающие последовательности букв, стоящих до и после дефиса обозначим звёздочками «*». Последовательности text и txt отличаются только тем, что в последней отсутствует «е». Обозначим её как «*». Использовать «?» нельзя, т. к. он не заменяет пустую последовательность, значит вариант 1) не подходит. Искомая маска *tr*-*.t*xt cоответствует варианту 3) Отбор группы файлов по маске.

14 слайд

Описание слайда:

Каким запросом вывести в поиске все файлы? *.* Вы забыли под каким именем сохранили файл MS Word, но помните, когда создали его. Как вы намерены его искать? *.docx,*.doc и укажу дату создания. Почему знаки \ / ? : * " > < | нельзя использовать в имени файла? Потому что это зарезервированные символы. Вопросы.

(символов-джокеров).

Шаблоны в командных оболочках

Чаще всего употребляются два символа - для замены любой строки символов звёздочка (* ) и для замены любого одиночного символа знак вопроса ().

При этом * может означать и пустую строку (отсутствие символов). Так например, одиноко стоящая звезда - это шаблон, к которому подходят все файлы каталогов, в которых осуществляется поиск по данному шаблону. Использование шаблона *.html позволит выделить все html-файлы, а шаблона my*.odt - файлы начинающиеся с «my» и оканчивающиеся на «.odt». Шаблон *2010* определяет все файлы, в именах которых присутствует группа символов 2010.

cat * >concat # Конкатенирует все файлы в текущем каталоге в один *.??? # Удаляет все файлы в текущем каталоге, имеющие суффикс из трех символов

Шаблоны в СУБД

В программах управления базами данных, например SQL , вместо * используется знак процента %, вместо? знак подчёркивания _. В Microsoft Access , точнее, в их скриптовых языках, символы-джокеры могут быть использованы в выражениях «LIKE».

Пример шаблонов

Регулярные выражения

В регулярных выражениях концепция символов-джокеров получила дальнейшее развитие. В них есть специальные обозначения не только для одного («.») и любого количества (квантификатор «*») символов, но и различных классов символов (например, пустые символы «\s»), альтернативных выражений ("|") и многое другое.

Назначение шаблонов

Иногда при работе с файлами необходимо или возможно указывать только часть их имени или расширения. Это делается, например, для того, чтобы в параметрах программы не называть полностью имена всех файлов, над которыми производится операция, а выделить их в группу по какому-нибудь признаку (заметим, что некоторые программы работают не с единичными файлами, а с группой). Также бывает необходимо найти файл или файлы, у которых неизвестны полное имя и/или расширения. Для этих целей используют так называемые шаблоны.

Командные оболочки Linux (shell , bash и др.), а также различные языки программирования позволяют выделять (искать) из множества имен файлов и каталогов определенные группы посредством использования так называемых шаблонов имен файлов. С шаблоном командная оболочка сравнивает очередной файл, и если он «вписался» в этот шаблон, то будет учтен, если нет - то будет пропущен. Грубо, шаблон можно сравнить с некой коробкой, в которую влезет не каждый предмет и не только из-за размеров, но и из-за несовпадения изгибов коробки и предмета.

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

В операционной системеMS-DOS существует способ, который значительно упро­щает выполнение такой операции с группой файлов. Для решения подобных задач используются шаблоны имен (маски) файлов . Фактически такой шаблон (маска) выступает в роли общего или группового имени для той группы файлов, над которой осуществляется та или иная операция. Такой шаблон представляет собой файл, и в имени, и в расширении которого могут использоваться только два символа: * и ? .

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

ü *. соm - все командные файлы (с расширением .соm );

ü *.* - все файлы текущего каталога;

ü а:\fах\*.dос - файлы с расширением .dос каталога fах.

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

ü ??.. bak - файлы с любыми двухсимвольными именами и расширением bak ;

ü ТЕА??.* - файлы с именем, начинающимся с ТЕА и состоящим не более чем из 5 символов.

Путь к файлу - это имя диска и последовательность имён каталогов относитель­но корневого, разделённых символом "\", где находится файл. Еслиимя устройства не указано, то подразумевается текущий диск. Если не указан путь, то подразумевается текущий каталог.

ПРИМЕР: Пусть в корневом каталоге диска С:\ имеются два каталога 1-го уровня (GAMES, TEXT ) и один каталог 2-го уровня (CHESS ). Как найти имеющиеся файлы (chess.exe, proba.txt )? Для этого необходимо указать путь к файлу. В путь файла входит имя диска и последова­тельность имен каталогов, т.е. пути к вышеперечисленным файлам со­ответственно будут:

C:\GAMES\CHESS\chess.exe

C:\TEXT\proba.txt


Рис. 2 Пример иерархической структуры каталога.

Над файлами производиться различные операции:

* копирование (копия файла помещается в другой каталог),

* перемещение (сам файл перемещается в другой каталог),

* удаление (запись о файле удаляется из каталога),

* переименование (изменяется имя файла) и т.д.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows