Chkdsk f не указан параметр а. Параметры chkdsk. Пример использования параметров

Помощь 08.04.2019
Помощь

Три́ггер (trigger ) - это хранимая процедура особого типа, которую пользователь не вызывает непосредственно, а исполнение которой обусловлено наступлением определенного события (действием) - по сути добавлением INSERT или удалением DELETE строки в заданной таблице, или модификации UPDATE данных в определенном столбце заданной таблицы реляционной базы данных. Триггеры применяются для обеспечения целостности данных и реализации сложной бизнес-логики. Триггер запускается сервером автоматически при попытке изменения данных в таблице, с которой он связан. Все производимые им модификации данных рассматриваются как выполняемые в транзакции, в которой выполнено действие, вызвавшее срабатывание триггера. Соответственно, в случае обнаружения ошибки или нарушения целостности данных может произойти откат этой транзакции.

Триггеры создаются отдельно для каждой таблицы и располагаются в обозревателе объектов в папке «Triggers». Создадим триггеры для таблицы «teachers». Папка «Triggers» будет входить в состав таблицы «teachers»:

Создадим триггер, выводящий сообщение «Запись добавлена» при добавлении записи в таблицу. Создадим новый триггер, щёлкнув ПКМ по папке «Triggers» в таблице «teachers» и в появившемся меню выбрав пункт «New Trigger». Появится следующее окно с новым триггером:

Рассмотрим структуру триггеров:

1) Область определения имени функции (Trigger_Name);

2) Область, показывающая для какой таблицы создаётся триггер (Table_Name);

3) Область, показывающая когда выполнять триггер (INSERT – при создании записи в таблице, DELETE – при удалении и UPDATE – при изменении) и как его выполнять (ALTER – после выполнения операции, INSTEAD OF – вместо выполнения операции);

4) Тело триггера, содержит команды языка программирования запросов TSQL.

В окне нового триггера наберем код:

CREATE TRIGGER tr_add

ON dbo.teachers

PRINT "Новая запись добавлена"

Из рисунка видно, что создаваемый триггер «Индикатор добавления» выполняется после добавления записи (AFTER INSERT) в таблицу «dbo.teachers» (ON dbo.teachers). После добавления записи триггер выведет на экран сообщение "Новая запись добавлена" (PRINT "Новая запись добавлена"). Выполним набранный код, нажав кнопку на панели инструментов. В нижней части окна с кодом появиться сообщение «Command(s) completed successfully.».

Проверим, как работает новый триггер. Создадимновый пустой запрос и в нём наберем следующую команду для добавления новой записи в таблицу «dbo.teachers»:

insert into dbo.teachers

"Сидоров"

Выполним набранную команду, нажав кнопку на панели инструментов. В таблицу будет добавлена новая запись, и триггер выведет сообщение «Новая запись добавлена»

Аналогичным образом создаются триггеры с UPDATE и DELETE.

Задание: в соответствии со своей темой создайте в SQL Server Management Studio представления (3-4), запросы(3-4), хранимые процедуры(3-4), пользовательские функции(3-4), триггеры (INSERT, UPDATE и DELETE ). Используйте при создании операторы условия и циклы.

Триггер – это подпрограмма, похожая на процедуру БД, автоматически вызываемая СУБД при изменении, удалении или добавлении записи в таблице. К триггерам невозможно обратиться из программы, передать им параметры или получить от них результат. Наиболее часто триггеры применяются для поддержания ссылочной целостности и каскадных операций в БД. Ссылочные спецификации, определяющие каскадные действия при удалении и обновлении и создаваемые при объявлении таблиц, также реализуются через триггеры, однако текст этих триггеров не редактируется.

Назначение триггеров

Предотвращение изменения (например, предотвратить счета от изменений после того как они разосланы).
. Журналирование изменения (например, хранить копии старых данных).
. Аудит изменений (например, вести лог пользователей и ролей, участвующих в изменениях).
. Фиксация изменений (например, обеспечить, чтобы все изменения датировались по часам сервера, а не клиента).
. Реализация бизнес-правил.
. Репликация данных (например, хранить записи всех изменений, которые будут отправлены в другой базе данных более поздней версии).
. Повышение производительности (например, обновление сальдо после каждой детали сделки, для ускорения запросов).

Объявление триггеров

CREATE TRIGGER {BEFORE|AFTER } {DELETE|INSERT|UPDATE [OF ]} ON REFERENCING {OLD {[ROW ]|TABLE [AS ] } NEW {ROW|TABLE } [AS ] }] [FOR EACH {STATEMENT|ROW [WHEN ]}]
[BEGIN ATOMIC ]

[END ]

Ключевые слова

. BEFORE|AFTER – время запуска триггера – до | после операции обновления.
. DELETE|INSERT|UPDATE = событие срабатывания триггера.
. FOR EACH ROW – для каждой строки (строчный триггер, тогда и WHEN).
. FOR EACH STATEMENT – для всей команды (действует по умолчанию).
. REFERENCING – позволяет присваивать до 4-х псевдонимов старым и | или новым строкам и | или таблицам, к которым могут обращаться триггера.

Ограничения триггеров

Тело триггера не может содержать операторов:
. Определения, удаления и изменения объектов БД (таблиц, доменов и т.п.)
. Обработки транзакций (COMMIT, ROLLBACK)
. Подключения и отключения к БД (CONNECT, DISCONNECT)

Особенности применения
. Триггер выполняется после применения всех других (декларативны) проверок целостности и целесообразен тогда, когда критерий проверки достаточно сложен. Если декларативные проверки отклоняют операцию обновления, то до выполнения триггеров дело не доходит. Триггер работает в контексте транзакции, а ограничение FK нет.
. Если триггер вызывает дополнительную модификацию своей базовой таблицы, то чаще всего это не приводит к его рекурсивному выполнению, однако это следует уточнять. В СУБД SQL Server 2005 предусмотрена возможность указания рекурсии до 255 уровней с помощью ключевого слова OPTION (MAXRECURSIV 3).
. Триггеры обычно не выполняются при обработке больших двоичных столбцов (BLOB).
. Следует помнить, что всякий раз при обновлении данных СУБД автоматически создает так называемые триггерные виртуальные таблицы, которые в различных СУБД носят разные название. В InterBase и Oracle – Это New и Old. В SQL Server – Inserted и Deleted. Причем при изменении данных создаются обе. Эти таблицы имеют то же количество столбцов, с теми же именами и доменами, что и обновляемая таблица. В СУБД SQL Server 2005 предусмотрена возможность указания таблицы, включая временную, в которую следует вставить данные с помощью ключевого слова OUTPUT Inserted.ID,… INTO @ .
. В ряде СУБД допустимо объявлять триггеры для нескольких действий одновременно. Для реализации разных реакций на различные действия в Oracle предусмотрены предикаты Deleting, Inserting, Updating, возвращающие True для соответствующего вида обновления.
. В СУБД Oracle можно для триггеров Update указать список столбцов (After Update Of), что обеспечит вызов триггера только при изменении значений только этих столбцов.
. Для каждого триггерного события может быть объявлено несколько триггеров (в Oracle 12 триггеров на таблицу) и обычно порядок их запуска определяется порядком создания. В некоторых СУБД, например, InterBase, порядок запуска указывается с помощью дополнительного ключевого слова POSITION . В общем случае считается, что первоначально должны выполняться триггеры для каждой команды, а затем – для каждой строки.
. Триггеры можно встраивать друг в друга. Так SQL Server допускает 32 уровня вложения (с помощью глобальной переменной @@NextLevel можно определить уровень вложения).

Недостатки триггеров

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

Изменение и удаление триггеров

Для удаление триггера используется оператор DROP TRIGGER
. Для изменения триггера используется оператор ALTER TRIGGER …
. Отключение триггеров
В ряде случаев, например, при пакетной загрузке, триггеры требуется отключать. В ряде СУБД предусмотрены соответствующие возможности. В Oracle и SQL Server ключевые слова DISABLE|ENABLE, в InterBase INACTIVE|ACTIVE в операторе ALTER TRIGGER.

Особенности промышленных серверов

1) InterBase/Firebird

CREATE TRIGGER FOR {ACTIVE|INACTIVE } {BEFORE|AFTER } {INSERT|DELETE|UPDATE } [POSITION ]
AS [DECLARE VARIABLE [()]]
BEGIN

END

Пример:

CREATE TRIGGER BF_Del_Cust FOR Customer
ACTIVE BEFORE DELETE POSITION 1 AS
BEGIN
DELETE FROM Orders WHERE Orders.CNum=Customer.CNum;
END;

2) SQL Server

CREATE TRIGGER ON [WITH ENCRYPTION ] {FOR|AFTER|INSTEAD OF } {INSERT|UPDATE|DELETE }
AS

USE B1;
GO
CREATE TRIGGER InUpCust1 ON Customer AFTER INSERT, UPDATE
AS RAISEERROR(‘Изменена таблица Customer’);

Дополнительные виды триггеров

В СУБД Oracle и SQL Server есть возможность создания (замещающих) триггеров для не обновляемых представлений. Для этого предусмотрены ключевые слова INSTEAD OF:

CREATE TRIGGER ON INSTEAD OF INSERT AS …

Можно отслеживать попытки клиента обновлять данные с помощью представлений и выполнять какие-либо действия, обрабатывать не обновляемые представления и т.п.
. В СУБД SQL Server предусмотрен триггер отката, фактически прекращающий все действия с выдачей сообщения:

ROLLBACK TRIGGER

Создание генераторов

Генератор – это хранящаяся в БД программа, выдающая при каждом обращении к ней уникальное число.

Создание генератора:

CREATE GENERATOR <Имя генератора>

Начальное значение задается инструкцией:

SET GENERATOR <Имя генератора> TO <Начальное значение (целое число)>

CREATE GENERATOR GenStore

SET GENERATOR GenStore TO 1

Обращение к созданному генератору выполняется с помощью функции

GEN_ID (<Имя генератора>, <Шаг>)


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

Создание триггера:

CREATE TRIGGER <> FOR <>

{BEFORE | AFTER}

{UPDATE | INSERT | DELETE}

AS <Тело триггера>

Описатели ACTIVE | INACTIVE определяют активность триггера сразу после его создания. По умолчанию действует ACTIVE.

Описатели BEFORE | AFTER задают момент начала выполнения триггера до или после наступления соответствующего события, связанного с изменением записей.

Описатели UPDATE | INSERT | DELETE определяют, при наступлении какого события вызывается триггер – при редактировании, добавлении или удалении записей.

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

Удаление триггера:

DROP TRIGGER <Имя триггера>

Изменение триггера:

Для доступа к значениям столбца используются инструкции формата:

OLD.<Имя столбца> - обращается к старому (до внесения изменений) значению столбца,

NEW.<Имя столбца> - обращается к новому (после внесения изменений) значению столбца.

Создание триггера для занесения в ключевой столбец уникальных значений

CREATE TABLE Store

(S_Code INTEGER NOT NULL ,

PRIMARY KEY (S_Code));

CREATE GENERATOR GenStore

SET GENERATOR GenStore TO 1

CREATE TRIGGER CodeStore FOR Store

NEW.S_Code = GEN_ID (GenStore, 1);

При добавлении к таблице Store новой записи ключевому столбцу S_Code этой записи автоматически присваивается уникальное значение. Это обеспечивается обращением GEN_ID к генератору GenStore.


Реализация каскадного удаления записей с участием триггера

CREATE TABLE Store

(S_Code INTEGER NOT NULL ,

PRIMARY KEY (S_Code));

CREATE TABLE Cards

(C_Code INTEGER NOT NULL,

C_Code2 INTEGER NOT NULL,

PRIMARY KEY (C_Code));

CREATE TRIGGER DeleteStore FOR Store

DELETE FROM Cards WHERE Store.S_Code = Cards.C_Code2;

После удаления записи в таблице Store буду автоматически удалены все соответствующие записи в таблице Cards.

Замечание : для таблиц не должны действовать ограничения ссылочной целостности, заданные на физическом уровне.

Обновление столбцов связи (ключевых столбцов) связанных таблиц, заключающееся в том, что при изменении значения столбца связи главной таблицы соответственно изменяются значения столбца связи всех связанных записей подчиненной таблицы.

CREATE TRIGGER ChangeStore FOR Store

IF (OLD.S_Code <> NEW.S_Code)

THEN UPDATE Cards

SET C_Code2 = NEW.S_Code

WHERE C_Code2 = OLD.S_Code;

При изменении столбца S_Code, используемого для связи главной таблицы Store с подчиненной таблицей Cards, автоматически изменяются значения столбца связи C_Code2 соответствующих записей подчиненной таблицы.

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

Сценарий: У вас системные ошибки, и их необходимо исправить.

Утилита проверки и исправления ошибок на жёстком диске Microsoft CHKDSK (“проверка диска”) была представлена более 30 лет назад, но используется до сих пор. Даже пользователи последних версий операционной системы Microsoft могут воспользоваться данной командой, чтобы выполнить проверку своих жёстких дисков на ошибки и их исправление при необходимости. Ниже приведена инструкция по запуску CHKDSK в Windows 10.

Если после использования утилиты CHKDSK у вас всё ещё возникают ошибки, попробуйте .

Сначала выберите “Поиск в Windows” и выполните поиск Командной строки, введя “cmd”. Щёлкните по ярлыку правой кнопкой мыши и выберите “Запуск от имени администратора” в контекстном меню.

После входа в качестве администратора, вы окажетесь в Командной Строке Windows, знакомой пользователям операционных систем до Windows NT. Введите команду “chkdsk”, нажмите пробел, а затем букву диска, который вы желаете проверить или исправить. В нашем случае, это внешний диск “L”.

Выполнение команды CHKDSK без аргументов лишь покажет состояние диска, и не исправит ошибки, присутствующие на разделе. Чтобы попросить CHKDSK исправить ошибки на диске, нужно указать параметры. После ввода буквы диска введите следующие параметры, каждый из которых отделён пробелом: “/f /r /x”.

Параметр “/f” указывает CHKDSK выполнить исправление найденных ошибок; “/r” указывает программе обнаружить повреждённые секторы на диске и восстановить информацию, которую возможно прочитать; “/x” заставляет диск размонтироваться перед началом процесса. Дополнительные параметры доступны для более специализированных заданий, и подробно расписаны на web-сайте Microsoft.

В итоге полная команда, которую требуется ввестив Командную Строку, выглядит так:

chkdsk [Диск:] [параметры]

В нашем случае:

chkdsk L: /f /r /x

Стоит отметить, что CHKDSK должен заблокировать диск, поэтому не удастся выполнить проверку системного загрузочного диска, если компьютер работает. В нашем случае целевой диск – внешний, поэтому процесс начнётся сразу после ввода команды. Если целевой диск – загрузочный, система спросит вас, хотите ли вы запустить команду перед следующей загрузкой. Введите “yes”, перезагрузите компьютер, и команда запустится до загрузки операционной системы, получив полный доступ к диску.

Выполнение команды CHKDSK может занять продолжительное время, особенно на больших дисках. При завершении программа подытожит результаты, такие как общий объём места на диске, размещение байтов, а также самое главное – информацию о найденных и исправленных ошибках.

Команда CHKDSK доступна во всех версиях Windows, поэтому пользователи как Windows 7, так и Windows XP, могут выполнить приведённые выше шаги для инициализации проверки жёсткого диска. В случае использования старых версий Windows, можно выполнить следующее:

  1. Нажать “Пуск – Выполнить…”
  2. Ввести cmd
  3. Ввести chkdsk [Диск:] [параметры]

Этапы “CHKDSK”

5 главных этапов описаны ниже:

Этап 1. Проверка базовой структуры файловой системы…

На первом этапе файлы с записями в MFT (главная файловая таблица) сравниваются и проверяются.

Этап 2. Проверка связей имен файлов…

На данном этапе проверяются директории и структура. Они проверяются на соответствие размеру файла и временной метки информации.

Этап 3. Проверка дескрипторов безопасности…

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

Четвёртый и пятый этапы выполняются только при наличии аргумента /r!

Этап 4. Поиск поврежденных кластеров в данных пользовательских файлов…

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

Этап 5. Поиск поврежденных и свободных кластеров…

На пятом этапе секторы кластера проверяются на отсутствие данных.

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

Также в Windows можно получить доступ к графическому интерфейсу CHKDSK

Для выполнения проверки с использованием графического интерфейса, выполните следующее:

Щёлкните правой кнопкой мыши по диску, который вы хотите проверить. Выберите Свойства – Сервис – Выполнить проверку.

Это графический интерфейс “CHKDSK”. Две опции соответствуют параметрам “/f” и “/r”.

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

Синтаксис

chkdsk [том : ][[путь ] имя_файла ] [/f ] [/v ] [/r ] [/x ] [/i ] [/c ] [/l [: размер ]]

Параметры

том: Указывает букву диска (с последующим двоеточием), точку подключения или имя тома. [путь ] имя_файла Задает местонахождение и имя файла или имена множества файлов, для которых команда chkdsk проверит степень фрагментации. Для задания нескольких файлов можно использовать подстановочные знаки (* и?). /f Задает исправление ошибок на диске. Диск должен быть заблокирован. Если диск не заблокирован командой chkdsk , отображается запрос на проверку диска при следующей перезагрузке компьютера. /v Выводит на экран имена проверяемых файлов и каталогов. /r Обнаруживает поврежденные сектора и восстанавливает ту часть данных, которая еще может быть прочитана. Диск должен быть заблокирован. /x Используйте только с файловой системой NTFS. При необходимости инициирует операцию отключения тома в качестве первого действия. Все открытые дескрипторы диска будут неверны. Параметр /x включает также функциональные возможности параметра /f . /i Используйте только с файловой системой NTFS. Выполняет менее тщательную проверку записей индекса, что уменьшает время, необходимое для работы команды chkdsk . /c Используйте только с файловой системой NTFS. Пропускает проверку циклов в структуре папок, что уменьшает время, необходимое для работы команды chkdsk . /l [:размер ] Используйте только с файловой системой NTFS. Устанавливает указанный размер журнала. Если размер не указан, параметр /l выводит текущий размер. /? Отображение справки в командной строке.

Заметки

  • Выполнение команды chkdsk

    Чтобы выполнить команду chkdsk для жестких дисков, необходимо быть членом группы администраторов.

  • Проверка заблокированных дисков при перезагрузке

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

    Невозможно выполнить команду Chkdsk, так как указанный том используется другим процессом. Следует ли выполнить проверку этого тома при следующей перезагрузке системы?

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

  • Отчет об ошибках

    Команда chkdsk выполняет проверку дискового пространства и его использования для файловых систем FAT и NTFS. Команда Chkdsk позволяет получить отчет о состоянии со сведениями по каждой файловой системе. Отчет о состоянии диска включает перечень найденных ошибок. Если команда chkdsk запущена без параметра /f в активном разделе, может быть получено сообщение о наличии серьезных ошибок, так как диск нельзя заблокировать. Для поиска ошибок команду chkdsk нужно запускать время от времени на каждом диске.

  • Исправление ошибок

    Если указан параметр командной строки /f , программа chkdsk исправляет ошибки на диске. При работе chkdsk должна обеспечиваться возможность блокирования диска для исправления ошибок. Поскольку при исправлении ошибок обычно изменяется таблица размещения файлов и иногда происходит потеря данных, программа chkdsk запрашивает подтверждение в следующем виде:

    Потерянных кластеров: 10; цепочек: 3.

    Преобразовать потерянные цепочки кластеров в файлы ?

    Если ввести Y , Windows сохраняет каждую потерянную цепочку в корневом каталоге как файл с именем формата Filennnn .chk. После завершения выполнения chkdsk можно проверить эти файлы на наличие нужных сведений. Если ввести N , Windows исправляет ошибки на диске без сохранения данных из потерянных блоков.

    Если параметр командной строки /f не используется, программа chkdsk только выдает сообщение о наличие ошибок в файле, но не исправляет их.

    Если команда chkdsk /f запущена на диске большого объема (например 70 Гб) или диск содержит большое количество файлов (например несколько миллионов), для завершения работы программы chkdsk может потребоваться очень много времени (возможно несколько дней). В течение всего этого времени компьютер будет недоступен для пользователей, так как chkdsk не возвращает управления до завершения работы.

  • Проверка дисков с файловой системой FAT

    chkdsk о состоянии диска с файловой системой FAT в следующем формате:

    Серийный номер тома: B1AF-AFBF

    72214528 байт всего на диске

    73728 байт в 3 скрытых файлах

    30720 байт в 12 каталогах

    11493376 байт в 386 пользовательских файлах

    61440 байт в поврежденных секторах

    60555264 байт доступно на диске

    2048 байт в каждом кластере

    Всего кластеров на диске: 35261.

    29568 кластеров на диске

  • Проверка дисков с файловой системой NTFS

    Система Windows выводит отчет программы chkdsk о состоянии диска с файловой системой NTFS в следующем формате:

    Тип файловой системы: NTFS.

    Проверка файлов...

    Проверка файлов завершена.

    Проверка индексов...

    Проверка индесков завершена.

    Проверка описателей защиты...

    Проверка описателей защиты завершена.

    12372 Кбайт всего на диске.

    3 Кбайт в 1 пользовательских файлах.

    4217 КБ используется системой.

    8150 Кбайт свободно на диске.

    Размер кластера: 512 байт.

    Всего кластеров на диске: 24745.

    16301 кластеров на диске.

  • Использование chkdsk с открытыми файлами

    Если указан параметр /f , команда chkdsk выводит сообщение об ошибке, если на диске найдены открытые файлы. Если же параметр /f не указан и на диске найдены открытые файлы, chkdsk может выводить сообщения о потерянных блоках на диске. Это произойдет в случае, когда открытые файлы еще не записаны в таблице размещения файлов. Если программа chkdsk сообщает о большом количестве потерянных блоков дискового пространства, должна быть рассмотрена возможность ремонта диска.

  • Обнаружение физических ошибок диска

    Используйте параметр командной строки /r для обнаружения физических ошибок диска в файловой системе. Для получения сведений о восстановлении физически поврежденных файлов с помощью команды recover щелкните ссылку «».

  • Отчет о поврежденных секторах диска

    Испорченные сектора, о которых сообщает команда chkdsk , были маркированы при первом форматировании диска. Такие сектора не представляют опасности.

  • Общие сведения о кодах завершения программы

    В следующей таблице перечислены коды завершения, которые могут содержатся в отчете программы chkdsk после окончания ее выполнения.

  • Команда chkdsk с другими параметрами доступна в консоли восстановления.

Примеры

Если требуется проверить диск в дисководе D и исправить все обнаруженные ошибки в Windows, введите следующую команду:

chkdsk d: /f

Если обнаружена ошибка, выполнение программы сhkdsk приостанавливается и выводятся соответствующие сообщения. По окончании выполнения команды chkdsk на экран выводится отчет, содержащий сведения о текущем состоянии диска. До завершения работы chkdsk нельзя открывать какие-либо файлы на указанном диске.

Чтобы проверить фрагментацию всех файлов в текущем каталоге на диске с файловой системой FAT, введите следующую команду:

chkdsk *.*

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



Рекомендуем почитать

Наверх