Похожие сайты…

 

E.2. Работа с файлами в командной строке операционных систем

Содержание

Создание текстовых файлов с помощью командной строки.

Копирование файлов.

Перемещение файлов.

Переименование файлов.

Удаление файлов.

Восстановление файлов средствами DOS и Norton Utilites.

Изменение атрибутов файлов.

E.2.1. Создание текстовых файлов в командной строке операционных систем.

Содержание

E.2.1.1.1. Создание с помощью команды copy.

E.2.1.1.2. Создание файла с помощью команды edlin (MS-DOS 3.3x).

E.2.1.1.3. Создание текстового фала с помощью текстового редактора в командной строке

E.2.1.1. Создание текстовых файлов в MS-DOS.

E.2.1.1.1. Создание с помощью команды copy.

Простейший способ создания текстовых файлов в MS-DOS - прямое копирование символов с консоли в файл. Для этого необходимо послать команду:

copy /A CON <файл>

где <файл> полное или краткое имя файла.

Данная команда создает файл построчно. Ввод каждой строки происходит после нажатия клавиши Enter. До нажатия этой клавиши строку еще можно редактировать, а после нажатия Enter - нет.

В конце последней строки текста необходимо нажать клавишу F6 (или Ctrl+Z), а затем - Enter. Команда copy выдаст сообщение:

1 file(s) copied

1 файл(-ы) скопирован

и на диске появится файл с указанным именем.

E.2.1.1.2. Создание файла с помощью команды edlin (MS-DOS 3.3x).

Edlin представляет собой простейшую программу обработки текста. Часто ее называют "программой редактирования строк". С помощью этой программы одновременно можно редактировать одну и только одну строку текстового файла! Конечно же, приверженцы GUI и пользователи Microsoft Word могут посмеяться над этой программой. Однако она имеет одно преимущество: она занимает в рабочем состоянии всего 7 495 байт [ Эско Валтанен.]

Синтаксис программы следующий:

edlin <файл>

где <файл> имя нового файла.

После этого, если этого файла на диске нет, появится следующая надпись:

New file

*

Затем необходимо после звездочки набрать I (Insert, по-английски - вставить) и нажать клавишу Enter. Появятся следующие символы:

<n>: *

где <n> - номер строки. Далее Вы просто набираете текст в строке, нажимая в ее конце Enter.

После набора последней строки, завершенной Enter, необходимо нажать Ctrl+C. Тогда опять появится звездочка. Далее необходимо нажат клавишу E (от End, конец). Файл запишется на диске, выдав сообщение:

End of input file

(Конец ввода файла).

Более подробно работа с edlin Приводится во все той же книге [Эско Валтанен].

E.2.1.1.3. Создание текстового фала с помощью текстового редактора в командной строке.

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

1. В командном приглашении набирается следующая строка:

<имя_редактора> <файл>

где <имя_редактора> - имя файла текстового редактора(полное или краткое, если его каталог прописан в переменной окружения PATH).

<файл> - имя и расширение создаваемого файла.

Пример:

edit myfile.txt

- с помощью редактора Edit.com, входящий в состав MS-DOS v. 5.0 и старше, в текущем каталоге создается файл с именем myfile.txt

2. В редакторе набирается содержимое файла.

3. После этого сохраняют изменения в набранном в редакторе текста и осуществляют выход из программы.

4. После этого в текущей директории (если задано краткое имя файла) или в другой директории (если задано полное имя) появится файл.

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

E.2.2. Копирование файлов

Содержание

E.2.2.1. Копирование в MS-DOS.

E.2.2.1.1. Команда copy.

E.2.2.1.2. Команда xcopy

E.2.2.1.3. Команда Diskcopy

E.2.2.2. Копирование в IBM OS/2.

E.2.2.2.1. Команда Copy.

E.2.2.2.2. Команда xcopy.

E.2.2.2.3. DISKCOPY.

E.2.2.2.4. Команда xdfcopy.

E.2.2.3. Копирование файлов в операционной системе Linux.

E.2.2.3.1. Команда cp.

E.2.2.3.2. Команда mcopy.

В таблице E.I. приведены команды, используемые для работы с файлами. В этом разделе автор приводит подробное описание команд копирования файлов.

E.2.2.1. Копирование в MS-DOS.

E.2.2.1. Копирование в MS-DOS.

E.2.2.1.1. Команда copy.

E.2.2.1.2. Команда xcopy

E.2.2.1.3. Команда Diskcopy

E.2.2.1.1. Команда copy.

С помощью команды copy можно копировать файлы (не каталоги!). Команда внутренняя.

Ее синтаксис:

copy [опции] <параметр1> <параметр2> [опции]

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

1) Оба параметра - различные краткие имена файлов. В этом случае в текущей директории создается дубликат файла. Пример:

copy myfile.txt myfile.doc

В текущей директории создается дубликат файла myfile.txt - файл myfile.doc

2) Оба параметра - полные имена. Происходит копирование файла из одного каталога в другой с изменением имени. Например:

copy c:\tech\myfile.txt a:\myfile.doc

Файл myfile.txt в директории c:\tech изменяет свое имя на myfile.doc и копируется в корневой каталог диска A.

3) Первый параметр - имя файла (полное или краткое), а другой - путевое имя каталога. Файл копируется в каталог назначения без изменения имени. Например:

copy c:\tech\myfile.txt a:\

Файл myfile.txt из директории c:\tech\ копируется в корневой каталог диска A.

4) Первый параметр - шаблон, а второе - путевое имя каталога. Этот случай аналогичен случаю 3), однако при этом копируется не единичный файл, а группа файлов, удовлетворяющая условиям шаблона. Пример:

copy a:\*.doc b:\

В этом примере все файлы корневого каталога диска A: с расширением doc копируются в корневой каталог диска B: без изменения имени.

5) Оба параметра - шаблоны файлов. Тогда копируются файлы из каталога - источника, удовлетворяющие первому условию (параметр 1), в каталог - приемник. при этом имена файлов изменяются так, чтобы они удовлетворяли шаблону, указанному в параметре 2. Пример:

copy \tech\*.txt b:*.doc

Копируются файлы с расширением txt из каталога \tech\ текущего диска в текущий каталог диска B:. При этом расширение всех файлов меняется на doc.

6) Первый параметр - шаблон файла, а второй - имя файла. Происходит копирование с объединением. Подробнее смотри раздел, посвященный объединению файлов.

2. Опции команды copy.

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

/A - копирование как текстовые файлы. Копируются содержимое файла(ов) до первого встреченного символа "конец файла" (EOF, ASCII 26 - смотри раздел, посвященный классификации файлов). После копирования символ EOF добавляется в конец файла.

Ключ действует на предшествующий файл, а также на все последующие до конца команды. Он отменяет действие ключа /B.

/B - копирование как двоичные файлы. Файлы рассматриваются как произвольная последовательность символов. Файлы копируются до конца, в конец скопированного файла не добавляется символ EOF.

Ключ действует на предшествующий файл, а также на все последующие до конца команды. Он отменяет действие ключа /A.

3. Замечания.

1) Команда copy не копирует:

a) каталоги,

b) скрытые и системные файлы.

2) Команда copy не копирует "образ" дискеты. То есть команда

copy a:\*.* b:\

не создаст образ дискеты в смысле одинакового положения файлов на обоих дискетах. Однако при копировании с помощью этой команды все файлы на диске B: будут расположены максимально плотно (то есть в последовательных секторах). Это является одним из достоинств данной команды.

Образ же дискеты лучше всего делается командой diskcopy, входящей в состав MS-DOS, или программой diskdupe.exe. Последняя может даже создавать образ дискеты в виде файла, чем широко пользуются компьютерные пираты, незаконно воспроизводя дистрибутивы с дискет.

3) При копировании файла в каталог, где существует файл с тем же именем, содержимое последнего СТИРАЕТСЯ!

4) Командой copy нельзя копировать двоичные файлы с символьных устройств ввода/вывода. К таким устройствам относятся все устройства, подключаемые к последовательным и параллельным портам компьютера, а также консоль (клавиатура.)

4. Сообщения при копировании файлов.

a) <n> file(s) copied

<n> файлов скопировано

Успешно скопировано <n> файлов.

b) File not found

Файл не найден.

c) File cannot be copied onto itself

Файл не может быть скопирован сам на себя

Попытка копирования файла на себя. Не было указано, где содержится копия. В подобной ситуации MS-DOS копирование не производит.

d) Insufficient disk space

Недостаточно места на диске

Не хватает места на целевом диске для копируемого файла.

e) Cannot do binary reads from device

Не могу осуществить бинарный ввод с устройства

Используется ключ /B при копировании текста с какого-либо устройства (CON, AUX, PRN и других - смотри раздел, посвященный редиректору DOS). С этих устройств могут копироваться только текстовые файлы, заканчивающиеся символом EOF. Пример неправильного использования такой опции:

copy /B con myfile.doc

f) Invalid path or file name

Неправильный путь или имя файла.

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

E.2.2.1.2. Команда xcopy

Впервые эта команда появилась в MS-DOS версии 3.2. Команда позволяет копировать файлы и каталоги. Команда внешняя (xcopy.exe).

Синтаксис

xcopy <параметр_1> <параметр_2> [<опции>]

Действие:

Команда xcopy действует также, как и команда copy. Во всяком случае смысл ее параметров остался тем же (смотри E.2.2.2.1.1, описание). Однако благодаря наличию ключей она может дополнительно:

a) копировать и файлы, и дерево каталогов;

b) копировать файлы, которые создавались или модифицировались после указанной даты;

c) копировать файлов с установленным атрибутом "архивный";

d) запрашивать подтверждение на копирование.

Ключи команды

/A - Копирование файлов, у которых установлен флаг архивации. После копирования флаг не сбрасывается. (A - Archive - Архив)

Примечание. Флаг архивации устанавливается каждый раз, когда файл создается или модифицируется.

/D:<дата> - Копирование файлов, которые были созданы или изменены в указанный день или позже. (D - Date - Дата).

/E - Копирование всех подкаталогов, даже если они пустые. Этот ключ используется с ключом /S. (E - Empty - Пустой).

/M - Тоже, что и ключ /A, однако после копирования атрибут "архивный" сбрасывается. (M - Modify - Изменять).

/P - Перед копированием каждого файла из группы запрашивается подтверждение. (P - Prompt - Запрашивать).

/S - Копирование дерева каталогов Это означает копирование файлов из указанного в команде каталога и изо всех его подкаталогов. (S - Subdirectory - Подкаталог).

/V - Проверка правильности записи файлов на диск - приемник. (V - Verify - Проверять).

/W - Перед копированием DOS выводит на экран запрос и ожидает установки в дисковод дискеты с входными файлами. (W - Wait - Ждать).

Возвращаемые коды завершения программы.

В зависимости от результатов копирования программа xcopy возвращает операционной системе один из следующих кодов завершения (errorlevel).

0 - Копирование прошло успешно, без ошибок.

1 - Не обнаружено файлов для копирования.

2 - Пользователь прервал копирование нажатием Ctrl+C.

4 - Общая ошибка. Может быть выдана по следующим причинам:

a) недостаточен объем памяти;

b) неправильно указан дисковод;

c) в командной строке допущена ошибка;

d) файл не обнаружен;

5 - Ошибка записи или считывания дискеты.

Замечания:

1. Команда xcopy не работает с устройствами.

2. Данная команда по-прежнему не копирует скрытые и системные файлы.

3. Команда xcopy не копирует файлы, не помещающиеся на одном носителе (дискете). Также не возможно прямое копирование на несколько дискет.

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

a) Выполнить команду Attrib +A *.* Эта команда устанавливает у всех файлов флаг архивации.

b) Выполнить команду xcopy *.* /M Эта команда копирует все файлы с установленным атрибутом "архивный", сбрасывая его после копирования.

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

4. Команда xcopy, как и команда copy, не создает образ дискеты (см. раздел E.2.2.1.1, замечания)

5. При копировании файла в каталог, где существует файл с тем же именем, содержимое последнего СТИРАЕТСЯ (как и у команды copy)!

Сообщения.

a) Reading source file(s)

Читаю исходные файлы.

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

b)
<файл_1>
<файл_2>
...
<файл_n>

<n> File(s) copied

<n> Файла(ов) скопировано

Произведено успешное копирование n файлов.

c) Access denied

Доступ закрыт

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

d) Cannot perform a cycled copy

Не могу осуществить циклическое копирование (см. E.2.2.1.d)).

e) Cannot copy from reserved device

Не могу копировать с зарезервированного устройства.

Cannot copy to reserved device

Не могу копировать на зарезервированное устройство.

Попытка копирования с/на устройство, или имя файла совпадает с именем устройства.

f) Does <name> specify a file name or directory name on target? (F - file, D - directory).

<name> указывает на имя файла или каталога? (F - файл, D - каталог).

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

g) File cannot be copied onto itself

Файл не может быть копирован сам на себя.

Идентичное описание параметров 1 и 2. Такое также возникает, когда не найден целевой или исходный диск, каталог или имя файла.

h) File creation error

Ошибка в создании файла

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

i) <name> File not found

Файл с именем <name> не найден

j) Insufficient disk space

Недостаточно места на диске.

Это значит, что либо файл не помещается на дискету (и нужно отказаться от копирования), либо дискета заполнена файлами.

k) Invalid date

Неправильная дата.

Дата записана с недопустимыми символами.

l) Incorrect DOS version

Некорректная версия DOS

Программа xcopy должна быть той же версии, что и файл command.com

m) Invalid drive specification

Неправильное имя дисковода.

Указанный дисковод не существует, либо пропущено двоеточие после его имени.

n) Invalid number of parameters

Неправильное число параметров

Синтаксическая ошибка.

o) Invalid parameter

Неправильный параметр

Неопознанный ключ, или пропущен слэш у ключа ("/").

p) Invalid path

Неправильный путь

Неправильно записано путевое имя, или оно слишком длинное.

q) Path not found

Путь не найден

r) Path too long

Путь слишком длинен

s) Press any key to begin copying file(s)

Нажмите любую клавишу, чтобы начать копирование файла(ов)

Сообщение появляется, когда указан ключ /W.

t) Unable to create directory

Не могу создать каталог

Dos не может создать каталог, если имена файла и подкаталога (с расширением) совпадают. Сообщение также появляется, если дискета заполнена, либо допущена ошибка в определении пути доступа.

E.2.2.1.3. Команда Diskcopy

С помощью этой команды можно создавать идентичные копии съемных дисков. При этом содержимое всех кластеров на дискетах становится одинаковым, то есть создается как бы "образ" дискеты (в отличие от использования команд copy и xcopy). Образы дискет бывают необходимы в случае копирования загрузочных и дистрибутивных дискет. Команда внешняя.

Синтаксис:

diskcopy [<дисковод1>] [<дисковод2>] [/1]

где <дисковод1> - дисковод с исходной дискетой,

<дисковод2> - дисковод с целевой дискетой (на которую производится копирование).

Действие:

С исходной дискеты создается образ, который переносится на целевую дискету.

Опция

/1 - используется только одна сторона дискеты.

Возвращаемые коды:

0 - копирование произошло успешно.

1 - произошла ошибка, которая не является серьезной.

2 - пользователь прервал копирование, нажав Ctrl+C.

3 - серьезная ошибка. Программа на может считать исходную дискету или форматировать целевую дискету.

4 - недостаточный объем оперативной памяти, неправильно указан дисковод или ошибка в команде.

Замечания:

  1. Ни в коем случае не перепутайте местоположение целевой и исходной дискеты. В противном случае данные на исходной дискете будут разрушены! Поэтому желательно исходную систему защитить от записи (заклеить вырез 5,25" дискете или открыть отверстие в 3,5" дискете).
  2. Команда diskcopy осуществляет форматирование целевой дискеты, если она не форматирована или имеет другой формат.
  3. Все данные на целевой дискете уничтожаются.
  4. Команда копирует скрытые и системные файлы.
  5. Если для целевой и исходной дискеты используется один привод, то дискеты меняются при появлении сообщения, выдаваемого командой.
  6. Если объем оперативной памяти достаточно большой, то происходит считывание содержимого исходной дискеты в оперативную память перед его копированием на целевую дискету. В MS-DOS 5.0 и выше для этого используется расширенная память (при установке драйвера HIMEM.SYS). Если же объем памяти меньше необходимого, то содержимое исходной дискеты переносится частями.
  7. Эту команду нельзя использовать в сети ивместе с командами assign и subst.
  8. Если указано имя одного дисковода или имена двух дисководов совпадают, то копирование дискеты будет осуществляться на одном приводе.
  9. При копировании исходная дискета обозначается словом SOURSE (источник), а целевая - словом TARGET.

Сообщения.

a) Cannot DISKOPY to or from a network drive.

Не могу копировать на/из сетевого диска.

Команда не должна использоваться в сети.

b) Cannot DISKCOPY to or from ASSIGNed or SUBSTed drive.

Не могу копировать на/из дисков, назначенных командами ASSIGN или SUBST.

c) Copy another diskette (Y/N)?

Копировать другую дискету (Да/Нет)?

Данное сообщение появляется после завершения копирования дискеты. Оно запрашивает, будет ли продолжено копирование дискет. Если необходимо копировать другую дискету, нажмите клавишу Y и смените дискеты. В противном случае нажмите клавишу N.

d) Copy not completed

Копирование не закончено

Команда DISKCOPY не смогла завершить копирование дискеты. Рекомендуется произвести повторное копирование на другую целевую дискету.

e) Copying <n> tracks

<m> Sectors/Track, <s> Side(s)

Копирую <n> дорожек,

<m> Секторов на дорожку, <s> сторон.

Команда сообщает формат дискеты.

f) Disk error while reading drive A:

Abort, Ignore, Retry?

Ошибка при чтении дискеты в дисководе A:

Во время копирования обнаружена ошибка на исходной дискете. Нажатие A: приведет к отмене копирования, I - продолжение процесса копировани с потерей данных, R - произвести повторную попытку прочитать исходную дискету.

g) Disk must be the same size.

Диск должен иметь тот же размер.

Запрещено копировать диски с разным форматом.

h) Drive <x>: not ready

Make shure a diskette is inserted into the drive
and the door is closed

Диск <x> не готов.

Убедитесь, что дискета установлена в дисковод
и его замок закрыт.

i) Drive types or diskette types not compatible

Тип дисководов или дискет не совместим. (Например, при копировании 5,25" дискеты HD/DS на DD/DS и т.п.).

j) Formating while copying

Форматирование перед копированием.

В процессе этой операции формат целевой дискеты приводится к формату исходной.

k) Incorrect DOS version

Неверная версия DOS.

Версия программы DISKCOPY должна совпадать с версией command.com.

l) Insert [SOURSE|TARGET] diskette in drive A:
Press any key when ready

Поместите исходную|целевуюдискету в дисковод A:
и нажмите любую клавишу для продолжения.

m) Insufficient memory

Недостаточно памяти (для копирования дискет).

n) Invalid drive specification/
Specified drive does not exist or is non-removable

Неправильная спецификация дисковода.
Указанный дисковод не существует или является несъемным.

o) Invalid parameter.
Do not specify file name(s)
Command format (<x>:) (<x:>) [/1]

Неправильный параметр.
Не указывайте имена файлов

p) SOURCE|TARGET diskette bad or incompatible
Copy process ended

Исходная|целевая дискета повреждена или несовместима
Процесс копирования завершен.

Команда не может считать целевую дискету или отформатировать целевую.

q) TARGET diskette is write protected

Целевая дискета защищена от записи.

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

r) TARGET diskette may be unusable

Целевая дискета, возможно, непригодна

На целевой дискете обнаружена неисправимая ошибка. Необходимо заменить дискету.

s) Unrecoverable read/write error on drive (<x>:)
side <s>, track <t>

В дисководе <x>:на стороне <s> и дорожке <t> обнаружена неисправимая ошибка.

t) Sourse and target diskettes are not the same format.
Cannot do the copy

Исходная и целевая дискеты имеют разный формат. Не могу делать копию.

Попытка копирования 5.25" дискету на 3,5" дискету и наоборот.

E.2.2.2. Копирование в IBM OS/2.

Поскольку в 80-е годы XX столетия OS/2 задумывалась как "правоприемница" MS-DOS, то при реализации ее командной строки использовался тот же набор команд. Однако правила использования команд претерпели некоторые изменения. Об отличиях в использовании команд MS-DOS и IBM OS/2 будет рассказано ниже.

E.2.2.2.1. Команда Copy.

Синтаксис:

copy [/A|/B] <источник> [/A|/B] <приемник> [/A|/B] [/V]

Действие:

Копирование файлов или группы файлов. В отличие от MS-DOS эта команда может копировать каталоги.

Ключи:

Те же, что и в MS-DOS.

Смысл параметров:

<Источник> - диск, директория или файл (группа файлов), который(-ые) должны быть скопированы.

<Приемник> - устройство, диск, или директория, куда необходимо переместить копии файла(-ов).

Замечания:

1. Также, как и в MS-DOS, командой copy в OS/2 нельзя копировать дерево каталогов. Если при копировании указать только имя каталога, то с него будут скопированы все файлы, но не подкаталоги. Для копирования же подкаталогов необходимо по-прежнему использовать команду xcopy.

2. При записи новых файлов поверх старых необходимо учитывать, что в OS/2 не предусмотрены средства для восстановления удаленных с командной строки файлов!

E.2.2.2.2. Команда xcopy.

Назначение:

Копирование файлов и дерева каталогов.

Синтаксис:

xcopy <источник> <приемник> [<опции>]

Действие:

Копирование файлов, исключая скрытые и системные, и также дерева каталогов из <источника> в <приемник>. Смысл <источника> и <приемника> аналогичен тем же терминам в команде copy [E.2.2.2.1.]

Ключи:

/A, /D, /E, /M, /P, /S, /V, /W - назначение этих ключей полностью совпадает с назначением ключей в команде xcopy MS-DOS, а потому здесь не рассматриваются (см. E.2.2.1.2., ключи).

/Y - не запрашивать подтверждения для перезаписи существующих файлов назначения.

E.2.2.2.3. DISKCOPY.

Назначение:

Копирование содержимого (образа) одного съемного диска на другой.

Синтаксис:

diskcopy <диск1>: [<диск2>:]

Ключи: нет (в отличие от MS-DOS).

Замечания:

1. Команда diskcopy OS/2 аналогична своей "тезки" в MS-DOS, однако не поддерживает копирование только одной стороны дискеты (ключ /1).

2. Команда Diskcopy не поддерживает XDF-формат данных.

Примечание: XDF-формат (eXtended Data Format - расширенный формат данных) позволяет на дискету 3.5" HD/DS записывать до 1,8 Мбайт информации (вместо 1,44 Мбайт).

E.2.2.2.4. Команда xdfcopy.

Копирование образов дискет в XDF-формате.

Синтаксис:

xdfcopy <источник> <приемник>

Смысл параметров:

<Источник> - диск или файл-образ диска, которые копируются.

<Приемник> - диск или имя файла-образа диска.

Ключи: нет.

Замечания:

1. xdfcopy аналогична программе diskcopy OS/2, только работает с дисками с xdf-форматом данных.

2. Команда xdfcopy позволяет сохранить образ дискеты в файл, что роднит ее с программой копирования дискет в diskdupe MS-DOS. Однако эти команды различаются форматом хранения данных.

3. Команда xdfcopy может также выполнятся в сеансе MS-DOS под управлением OS/2 (а не только в командной строке OS/2).

E.2.2.3. Копирование файлов в операционной системе Linux.

Операционная система Linux является клоном операционной системы UNIX, работающая на Intel-совместимых компьютерах. В настоящее время Linux является наиболее распространенным клоном UNIX, и именно ее автор будет рассматривать как пример в UNIX-подобных операционных системах.

E.2.2.3.1. Команда cp.

В отличие от MS-DOS, в операционной системе Linux нет команд, копирующих или только файлы (как команда copy), или только файлы с деревом каталога (команда xcopy). Оба этих действия выполняет команда cp, которая, в зависимости от контекста, копирует и файлы, и каталоги. Ее синтаксис следующий:

cp <опции> {<источник>} <приемник>

Смысл команды следующий.

1. И источник, и приемник - имена файлов. Тогда команда просто создает копию (дубликат) файла с новым именем в текущем каталоге.

Пример:

cp oldfile newfile

2. Источник - имя файла, приемник - каталог. Команда создает копию файла - источника в указанном каталоге - приемнике.

Пример:

cp oldfile /home/den/mydir

3. Источник шаблон файла, приемник - каталог. Удовлетворяющие шаблону файлы копируются в каталог - приемник.

Пример:

cp ???file /home/den/mydir

4. Источник - имя файла (краткое или полное), приемник - полное имя файла. Происходит копирование указанного файла в каталог вместе с его переименованием.

Примеры:

cp thefile newdir/oldfile

- копирует файл thefile в подкаталог newdir в файл oldfile

cp newdir/oldfile newfile

- копирует файла oldfile из подкаталога newdir в файл newfile в текущем каталоге.

cp thefile ../file

- копирует файл thefile в файл file родительского каталога.

5. Источник - каталог + шаблон *.*, приемник - каталог. Копируются файлы из каталога - источника в каталог приемник. Подкаталоги копируются только в том случае, если указан ключ -r (смотри ниже).

Пример:

cp mydir/*.* newdir

- копируются все файлы из каталога mydir в каталог newdir.

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

Основные опции команды cp.

-i - выдача запроса на подтверждение перезаписи. Дело в том, что при копировании в Linux происходит следующее:

a) Если файла с именем, указанным в приемнике, не существует, то он создается и в него записывается информация.

b) Если файл с именем, указанным в приемнике, существует, то он СТИРАЕТСЯ, а на его месте создается новый файл БЕЗ ПРЕДУПРЕЖДЕНИЯ!

Чтобы выдать предупреждение, вводится опция -i. Пример ее использования:

cp -i newfile oldfile

После этой команды будет выдано предупреждение:

Overwrite oldfile?

Если на запрос ответить нажатием клавиши Y, то файл перезапишется. Любой другой ответ будет воспринят как "нет".

-r - при копировании использовать подкаталоги любой вложенности. Аналогична использованию ключей /S и /A в команде DOS xcopy.

E.2.2.3.2. Команда mcopy.

Файловые системы Linux и MS-DOS разные. Чтобы подключить диск с любой файловой системой в UNIX (в частном случае - в Linux) необходимо эту файловую систему смонтировать. Однако если используются дискеты на 3.5", то монтирование файловой системы каждой дискеты перед ее употреблением, а потом ее размонтирование при смене дискет было бы делом неразумным. Именно для того, чтобы избежать постоянных циклов монтирования - размонтирования файловых систем на дискетах, для работы с дискетами MS-DOS в операционной системе Linux есть так называемые команды mtools.

Для копирования с дискеты MS-DOS на диск Linux и наоборот служит команда mcopy. Ее синтаксис следующий:

mcopy <имя_файла> a:| b:

- для копирования файла из Linux в текущий каталог диска a: или b:.

mcopy a: | b: <имя_файла>

- для копирования файла из текущего каталога диска a: или b: на диск Linux.

Ключи: нет.

Замечания:

1. При копировании файлов можно использовать шаблоны.

2. При копировании файлов с/на дискету копируются файлы только в текущем каталоге. Указание любых каталогов на диске a: (или b:) ЗАПРЕЩЕНО! Если необходимо перейти в подкаталог на диске a: (или b:), используйте команду mcd.

Содержание

E.2.3. Перемещение файлов.

E.2.3.1. Перемещение в MS-DOS.

E.2.3.1.1. Версии DOS до 6.00 включительно.

E.2.3.1.2. Версии MS-DOS старше 6.0 и команды Microsoft Windows 95/98/2000 

E.2.3.2. Перемещение в IBM OS/2 Warp.

E.2.3.3. Перемещение файлов в операционной системе Linux.

E.2.3.3.1. Команда mv.

E.2.3. Перемещение файлов.

Перемещение файлов является важной операцией по манипуляции информацией на диске. На уровне операционной системы эта операция реализуется в два этапа:

- копирование файлов или каталогов из одной директории в другую, не изменяя никаких атрибутов;

- удаление всех файлов или каталогов в старой директории.

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

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

E.2.3.1. Перемещение в MS-DOS.

E.2.3.1.1. Версии DOS до 6.00 включительно.

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

@echo off
rem Файл Move.bat предназначен для перемещения
rem файлов командами copy и del.
echo Usage: move <old_file> <new_file>
rem Синтаксис: move <старое_место> <новое_место>

copy %1 %2 /V
del %1

rem Конец файла

E.2.3.1.2. Версии MS-DOS старше 6.0 и команды Microsoft Windows 95/98/2000

У этих версий операционной системы появилась внешняя команда для перемещения файлов - move.exe. Эта команда перемещает один или несколько файлов в указанное на диске место.

Формат команды:

move {<файлы>} <директория_назначения>,

где {<файлы>} - один и более полных или кратких имен файлов, либо шаблоны файлов.

<директория_назначения> - указание нового местоположения файла или новый каталог.

Допустимо переименовывание файлов командой move. Это делается следующим образом:

move <старое_имя> <новое имя>.

При этом запрещено использовать шаблоны!

Замечания:

1. При попытке перемещения нескольких файлов в один выведется сообщение:

Cannot move multiple files to a single file

Не могу переместить несколько файлов в один.

2. Перемещать этим способом можно не только файлы, но и каталоги.

3. Как и при копировании, запрещено циклическое перемещение.

Команда выдает следующие значения:

0 - произошло успешное перемещение всех файлов;

1 - при перемещении одного или нескольких файлов обнаружена ошибка.

E.2.3.2. Перемещение в IBM OS/2 Warp

В оболочке IBM OS/2 Warp синтаксис команды Move несколько изменился. Ее формат стал следующим:

move <имя_файла1> <имя_файла2> [<опции>],

где <имя_файла1> - полное или краткое имя файла либо шаблон файлов, которые перемещают.

<имя_файла2> - полное, краткое имя файлов либо шаблон файлов назначения.

Опции:

/Y - не запрашивать подтверждение создания директорий и записи новых файлов с именем существующих.

E.2.3.3. Перемещение файлов в операционной системе Linux.

Команды перемещения файлов в Linux имеют тот же формат, что и команды копирования. В частности, они имеют те же опции.

E.2.3.3.1. Команда mv.

Для перемещения файлов используется команда mv - аналог команды cp для копирования. Ее синтаксис:

mv <текущее_имя_файла> <новое_имя_файла>

где <текущее_имя_файла> - полные, краткие имена файлов, шаблоны и директории. Их может быть больше одного.

<новое_имя_файла> - полное, краткое имя файла, шаблон файлов или каталог назначения.

Ограничения и опции - что и у команды cp.

Содержание

E.2.4. Переименование файлов.

E.2.4.1. Переименование файлов в MS-DOS.

E.2.4.1.1. Команда ren

E.2.4.1.2. Переименование файла командой move.

E.2.4.1.3. Переименование метки диска.

E.2.4.2. Переименование файлов в IBM OS/2 Warp.

E.2.4.3. Переименование файлов в Linux.

E.2.4. Переименование файлов.

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

E.2.4.1. Переименование файлов в MS-DOS.

E.2.4.1.1. Команда ren

Синтаксис команды:

ren <старое_имя_файла> <новое_имя_файла>

где <старое_имя_файла> - краткое, полное им файла либо шаблон файлов;

<новое_имя_файлов> - краткое имя файла либо шаблон.

Замечания:

1. Программа меняет только имена файлов,но не их местоположение.

Пример: команда

ren C:\util\myfile.old newfile.old

переименовывает файл myfile.old в каталоге c:\util\ в файл newfile.old, который будет располагаться в том же каталоге. Следующая же команда выдаст сообщение об ошибке:

ren C:\util\myfile.old C:\dos\newfile.old

2. Если в качестве имени указывается шаблон файлов, то шаблон должен указываться и в новом имени.

Пример:

ren *.doc *.txt

Команда переименовывает все файлы с расширением doc в текущей директории в файлы с тем же именем и расширением txt. Следующая же команда выдаст сообщение об ошибке (или, что еще хуже, уничтожит все файлы с расширением doc):

ren *.doc my.txt

Сообщения:

a) Dublicate filename or File not found

Появляется при попытке присвоения файлу уже существующего имени или при необнаружении в каталоге файла со старым именем.

b) Invalid number of parameters.

Неправильное число параметров.

Указано более двух параметров в команде или неправильно записано имя файла.

c) Missing file name

Потеряно имя файла

Не определено либо не указано новое имя файла.

E.2.4.1.2. Переименование файла командой move.

Данная операция описана в разделе E.2.3.1.2., посвященном описанию команды move.

E.2.4.1.3. Переименование метки диска.

В операционной системе MS-DOS версий 4.0 и старше появилась так называемая метка диска. Она представляет собой 11 алфавитно-цифровых символов и предназначена для информировани пользователя о своем содержимом.

Метка устанавливается при высокоуровневом форматировании дисков (см. выпуск, посвященный файловым системам). Однако и в MS-DOS, и в IBM OS/2 ее можно сменить командой label.

Ее синтаксис

label [<дисковод>:] [<метка>]

где <дисковод> - буква диска, на котором надо просмотреть/изменить метку.

<метка> - метка, устанавливаемая командой.

Замечания:

1. Метка не должна содержать символы:

* ? / \ | . , ; : + = < > [ ] (пробел)

2. При вызове команды label без параметров появляется надпись:

Volume in drive <диск> is <метка>


Volume label (11 characters, ENTER for none)?

Метка на диске <диск> - <метка>


Метка диска (11 символов, ENTER если нет)?

Если введена новая метка, то она заменит старую метку.

Иначе появляется надпись:

Delete current volume label (Y/N)?

Удалить текущую метку тома (Да/Нет)?

Тогда нажатие клавиши Y удаляет текущую метку тома, а нажатие клавиши N оставляет метку тома без изменения.

Сообщения:

a) Invalid characters in volume label.

Volume label (11 characters, ENTER for none)?

Недопустимые знаки в имени метки (см. замечание 1 к этому разделу.) Введите метку заново.

b) Cannot LABEL a SUBSTed or ASSIGNed drive.

Команда Label не может быть применена на дисководах, определенных командами ASSIGN и SUBST.

c) Cannot label a network drive.

Нельзя назначить метку сетевому диску.

d) Invalid drive specification.

Ошибка при указании буквы тома или дисковода.

e) Delete current volume label (Y/N)?

Запрос на удаление метки у диска. Нажатие клавиши Y удаляет метку, N - отказ от удалени метки.

6. No room in root directory.

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

E.2.4.2. Переименование файлов в IBM OS/2 Warp.

Команды OS/2 Warp ren, move и label аналогичны тем же командам в MS-DOS.

E.2.4.3. Переименование файлов в Linux.

В Linux нет специальной команды дл переименовани файлов. Все операции по переименованию файлов выполняет команда mv. Однако для работы в Linux c дискетами, отформатированных под систему MS-DOS, используютс команды mren и mlabel.

Формат команды mren:

mren <старое_имя_файла> <новое_имя_файла>

По этой команде происходит переименование файла MS-DOS на дискете по правилам команды ren MS-DOS.

Для смены метки диска на дискете в Linux используется команда mlabel, аналогичная команде label MS-DOS.

В UNIX (в частности, в Linux и в IRIX) метка тома НЕ ЗАДАЕТСЯ! (Поскольку отсутствует понятие "дисковод" на уровне редиректора файловой системы.)

Содержание

E.2.5. Удаление файлов.

E.2.5.1. Удаление файлов в MS-DOS.

E.2.5.1.1. Команда Del (Erase) до версий DOS 4.0.

E.2.5.1.2. Команда Del (Erase) версии DOS 4.0 и старше.

E.2.5.3. Удаление файлов в IBM OS/2.

E.2.5.3. Удаление файлов в Linux.

E.2.5. Удаление файлов.

При работе с операционными системами возникают ситуации, когда необходимо избавится от "лишних" файлов. "Лишними" могут быть:

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

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

E.2.5.1. Удаление файлов в MS-DOS.

Для удаления файлов в MS-DOS служит внутренняя команда Del (от слова delete - удалять). Ее синоним - команда Erase.

E.2.5.1.1. Команда Del (Erase) до версий DOS 4.0.

Формат команды:

del <имя_файла>

или

erase <имя_файла>

где <имя_файла> - полное, краткое имя файла либо шаблон файлов.

Замечания:

  1. Команда удаляет только файлы . Для удаления каталогов служит другая команда.
  2. Команда не удаляет файлы с установленными атрибутами Read Only, Hidden, System. Для удаления этих файлов нужно либо снять эти атрибуты командой attrib, либо воспользоваться специальными программами (например, файловой оболочкой).
  3. Если указаны шаблоны файлов вместо имени файла, то будет выдан запрос на удаление всех файлов.Если указаны дисковод и/или путь доступа, но не указаны имена файлов, то удаляются все файлы в указанном каталоге.

Сообщения:

a) Are you sure (Y/N)?

Вы уверены (Да/Нет)?

Сообщение выдается перед удалением всех файлов в каталоге. Если Вы нажмете клавишу Y, то команда уничтожит все файлы в каталоге (кроме указанных в замечании 1.) Нажатие клавиши N приводит к отмене команды.

b) Access denied.

Доступ закрыт

Попытка удаления файла с атрибутом read only. Также сообщение выдается, если файл открыт другой программой (в сетевых и/или в многозадачных операционных системах).

c) File not found

Файл не найден.

Файл, указанный в команде, не обнаружен в каталоге, который задан в команде del (или в текущем каталоге).

d) Invalid drive specification

Ошибка в указании дисковода.

Возможно, указан несуществующий дисковод или опущено двоеточие после имени дисковода.

e) Invalid number of parameters

Неправильное число параметров.

Допущена ошибка в командной строке. Это могут быть лишние знаки, пробелы, а также указание в командной строке более одного имени файла или шаблона.

E.2.5.1.2. Команда Del (Erase) версии DOS 4.0 и старше.

В этих версиях DOS допускается использование после имени файла ключа /D. При использовании этого ключа DOS будет запрашивать перед удаление каждого файла из группы:

<имя_файла> Delete (Y/N)?

<имя_файла> Удалить (Да/Нет)?

Необходимо нажать Y для удаления файла или клавишу N для отмены удаления именно этого файла. После этого выводится запрос на удаление следующего файла из группы. Для остановки удаления группы нажмите Ctrl+C (Ctrl+Break).

E.2.5.2. Удаление файлов в IBM OS/2.

Для удаления файлов в операционной системе IBM OS/2 служат команды Del и Erase. Их синтаксис аналогичен синтаксису одноименных команд в MS-DOS версии 4.0 (смотри E.2.5.1.2.)

E.2.5.3. Удаление файлов в Linux.

Для удаления файлов в операционной системе Linux (как и в любом клоне UNIX) существует команда rm (сокращение от remove - удалить). Формат команды следующий:

rm [<опции>] {<имя_файла>}

Как видно из описания, в отличие от команды Del в MS-DOS командой можно удалить несколько файлов.

Замечания:

  1. В качестве имен файлов можно указывать краткие, полные имена или шаблоны файлов. Допускается указание нескольких шаблонов.
  2. Команда rm удаляет (а, точнее, стирает) файлы без какого либо предупреждения. Для того, чтобы вывести предупреждение перед удалением каждого файла из группы, используйте опцию -i. Она аналогична опции /D в MS-DOS.

Содержание

E.2.6. Восстановление файлов.

E.2.6.1. Восстановление файлов в операционной системе MS-DOS.

E.2.6.1.1. Команда UNDELETE MS-DOS v.5.0.

E.2.6.1.2. Команда UNDELETE операционной системы MS-DOS версии 6.0.

E.2.6.2. Восстановление файлов средствами Norton Utilites.

E.2.6.2.1. Программа quick unerase (qu).

E.2.6.2.2. Команда unerase пакета Norton Utilites.

E.2.6.2.3. Программа SmartCan.

E.2.6.2.4. Программа Erase Protect.

E.2.6. Восстановление файлов.

Иногда пользователю нужно восстановить случайно удаленные им файлы. Сразу необходимо заметить, что это можно сделать не всегда и не для всех файловых систем. Например, непредусмотрено восстановление файлов в файловых системах UNIX. Затруднено также восстановление файлов в файловой системе Novell NetWare. Более того, даже в операционных системах фирмы Microsoft невозможно восстановление файлов, если на место восстанавливаемых файлов была уже записана другая информация. Поэтому, если Вы хотите по-настоящему обезопасить себя от удалени нужных Вам файлов, следует приобрести программы, которые предохраняют от "физического" удаления файлов с жесткого диска. Для операционных систем фирмы Microsoft это утилиты из пакета Norton Utilites.

Далее в этом разделе будут рассмотрены штатные и специальные средства восстановления файлов.

E.2.6.1. Восстановление файлов в операционной системе MS-DOS.

E.2.6.1.1. Команда UNDELETE MS-DOS v.5.0.

Уже в операционной системе MS-DOS версии 5.0 появилась команда, позволяющая восстанавливать случайно удаленные файлы - команда undelete. Формат команды:

undelete {<диск>:][\<путь>\][<файл>] [<опции>]

Параметры:

<диск>: - символ дисковода, на диске которого находятся удаляемые файлы. Если дисковод опущен, подразумевается текущий диск.

<путь> - путь к каталогу, в котором находятся восстанавливаемые файлы. Если путь опущен, подразумевается текущая директория диска.

<файл> - имя файла либо шаблон восстанавливаемых фалов. Если не указан, подразумевается шаблон (*.*).

Ключи:

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

/ALL - восстановление всех файлов в каталоге. Подтверждение на восстановление не запрашивается. Если существует файл отслеживания удалений, то команда прежде всего восстановит файлы, указанные в нем. При этом имена файлов восстанавливаются полностью. Если этого файла нет, то команда undelete восстанавливает файлы, используя информацию в DOS. Недостающие имена фалов заменяются на (последовательно):

#, %. &, -, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Пример: пусть удалены файлы aa.txt и ba.txt . После команды undelete они восстановятся в файлы #a.txt и %a.txt. После чего их нужно переименовать командой ren.

/DOS - файлы восстанавливаются исходя из информации, сохраненной DOS, не используя файл отслеживания. При восстановлении файлов на первый запрос системы необходимо ответить Y(Да), а затем указать первый символ имени файла.

/DT - из всех файлов восстанавливаются только те, информация о которых записана в файле отслеживания удалений.

Примечание: файл отслеживания удалений существует только для MS-DOS версии 5.0 и выше. В операционной системе MS-DOS версии 5.0 существует резидентная программа для протоколировани изменений на диске. Запуск этой программы происходит по команде:

mirror /T<диск>

где <диск> - буква протоколируемого диска.

По этой программе в корневом каталоге создается файл mirrorsav.fil, а после применени команды del - и файл pctrackr.del с информацией об удаленных файлах и каталогах.

С помощью этих средств возможно восстановление файлов даже из удаленных каталогов. По-другому эти файлы можно восстановить только утилитой diskedit.

E.2.6.1.2. Команда UNDELETE операционной системы MS-DOS версии 6.0.

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

Дежурное удаление - "Delete sentry"

При использовании этого метода утилита создает скрытый каталог "SENTRY" в корневом каталоге диска. При удалении файлов с диска происходит перемещение файлов в этот каталог. Размер этого каталога ограничен и составляет обычно 7% от общей емкости диска.

Если этот каталог не вмещает последний удаленный файл, то утилита undelete производит удаление более ранних файлов до тех пор, пока удаленный файл не поместится в каталог.

Дополнительные ключи для режима дежурного удаления:

/DS - восстановление файлов из дежурного каталога "SENTRY".

/S<диск> - включение метода защиты фалов от удаления на диске <диск> с использованием дежурного каталога.

/PURGE<диск> - удаление содержимого дежурного каталога на диске <диск>.

Поисковое удаление - "Delete tracker"

Этот режим аналогичен команде MS-DOS v. 5.0 mirror /T<диск>. Он обеспечивает ту же степень защиты. Для реализации этого способа защиты в команду undelete добавлен ключ:

/T<диск>-<число>

где <диск> - защищаемый логический диск, <число> - число файлов на этом диске, о которых будет сохраняться информация (от 1 до 999). На каждый такой файл требуется 200 байт дискового пространства. По-умолчанию значения <число> устанавливаются такими, как указано в таблице:

Размер диска Число файлов
360 Кбайт 25
720 Кбайт 50
1.2 Мбайт 75
1.44 Мбайт 75
20 Мбайт 101
32 Мбайта 202
>32 Мбайт 303

Стандартный режим восстановлени файлов.

Отличий от MS-DOS версии 5.0 нет.

Дополнительные ключи команды UNDELETE MS-DOS v. 6.0.

Появились следующие ключи:

/STATUS - вызов на дисплей типа защиты от случайного удаления файлов на каждом диске.

/LOAD - загрузка программы undelete в память с последующим ее использованием как резидентной. Программа использует установки из файла undelete.ini.

/UNLOAD - выгрузка резидентной части программы undelete из памяти.

Файл undelete.ini содержит следующие разделы:

"дежурные" диски;

"дежурные" файлы;

"зеркальные" диски;

конфигурация;

по-умолчанию.

В разделе "дежурные" диски указаны диски, защищенных средствами "дежурного удаления", и приведена информация о них, а в разделе "зеркальные" диски - с использованием метода "поисковое удаление".

В списке "дежурных" файлов приведен список всех файлов, защищаемых на диске. Наличие символа "-" указывает на исключение файла из списка сохраняемых. По-умолчанию не охраняются следующие файлы:

*.tmp, *.vm?, *.woa, *.swp, *.spl, *.rmg, *.img, *.thm, *.dov

В разделе "конфигурация" для пользовател важны следующие пункты:

- Сохранение "архивных" файлов (со сброшенным атрибутом "архивный"). По-умолчанию - нет. Ключ:

archive=FALSE;

- Число дней, в течение которых будет сохраняться информация о файлах. По умолчанию - семь дней. Ключ:

days=7;

В разделе [defaults] ("по-умолчанию") приводится метод защиты каждого из дисков, принятый по-умолчанию.

После формирования файла undelete.ini (который, при его отсутствии, создаст сама система) командой

undelete /LOAD

можно запустить систему отслеживани удаленных файлов. В памяти резидентная часть программы undelete занимает 13,5 Кбайт.

E.2.6.2. Восстановление файлов средствами Norton Utilites.

E.2.6.2.1. Программа quick unerase (qu).

В комплекте Norton Utilites for DOS 4.5 для восстановлени удаленных файлов имеется программа quick unerase (qu). Формат этой команды:

qu [<диск>:][\<путь>\][\<имя_файла>]

Команда не содержит опций. Она эквивалентна программе undelete MS-DOS версии 5.0 в стандартном режиме восстановления файлов.

Работа команды.

Программа qu, запущенная без параметров, будет предъявлять имена файлов, которые еще можно восстановить. Вместо первого символа будет указан символ "?". Далее выводится надпись:

Do you wish to quick unerase file (Y/N)?

(Хотите ли Вы восстановить этот файл (Y-Да/N-Нет)?)

Если Вы не хотите восстанавливать файл, нажмите клавишу N. Иначе нажмите Y. В этом случае программа попросит ввести первый символ восстанавливаемого файла. После ввода этого символа файл восстановится.

Примечание. Программу qu желательно использовать для версий MS-DOS вплоть до 5.0. В этих операционных системах нет собственных средств восстановления файлов, и программа qu может пригодиться. Для более старших версий DOS используйте команду undelete, поставляемую вместе с операционной системой, или команду unerase из пакета Norton Utilites for DOS v. 6.0 и старше, а также Norton Utilites for Win32 версий 2.5 и старше.

E.2.6.2.2. Команда unerase пакета Norton Utilites.

Программа unerase предназначена для восстановления файлов в MS-DOS или режиме эмуляции MS-DOS программ Microsoft Windows 95/98. Программа восстанавливает файлы в разделах FAT12, FAT16 и FAT32 (Norton Utilites for Win32 v. 3.01 и старше). Программа работает в собственной псевдографической оболочке.

Вызов команды unerase:

unerase [<диск>:][\<путь>\][\<имя_файла>]

Смысл ее параметров - тот же, что и в команде undelete. Программа не имеет опций, и восстанавливает файлы в стандартном режиме восстановления. Если запускать программу без параметров, то она будет работать в диалоговом режиме.

Рис. E.6. Главное окнопрограммы UNERASE

После запуска программа выводит список имен удаленных файлов в текущем каталоге. Список представлен в шести столбцах. В первом столбце отображается имя файла. Вместо начальной буквы у него стоит символ "?". В остальных столбцах выводится последовательно: расширение файла, его размер (Size) , дату (Date) , время (Time) последней модификации. В последнем столбце находится так называемый прогноз файлов . Возможны следующие варианты прогноза:

"poor" - плохой прогноз (начало файла затерто);

"average" - посредственный (файл фрагментирован, но его начало не затерто);

"good" - хороший прогноз (файл не фрагментирован, и его начало не затерто);

"excellent" - отличный прогноз (файл сохранен с помощью программы Erase Protect, либо в каталог не было записано ни одного файла.)

По списку файлов можно "ходить" клавишами " стрелка верх ", " стрелка вниз ", PgUp , PgDn , Home , End . Их назначение то же, что и в окне-списке.

Рис. E.7. Окно Info программы UNERASE

Рис. E.8. Окно View программы UNERASE

Ниже окна-списка расположены кнопки Info, View, UnErase. Выбор кнопки " Info " выдает информацию о файле . Выбрав кнопку " View ", можно просмотреть содержимое файлов . В ходе просмотра можно использовать клавиши PgUp , PgDn , выход - клавиша Esc .

Рис. E.9. Окно восстановления файла программы UNERASE

Выбрав кнопку " UnErase ", можно восстановить файл. Появится вспомогательное окно с именем файла и приглашением нажать первую букву имени файла. Необходимо ввести букву и нажать клавишу Enter . Если же вместо этого нажать Esc , то файл восстановлен не будет.

Можно также восстановить несколько удаленных файлов. Для этого необходимо их выделить клавишей " Пробел ", затем нажать кнопку " UnErase ". Появится диалоговое окно, в котором запрашивается, надо ли делать запросы о первой букве файла.

- Нажатие " Enter " - приступить к восстановлению файлов с запросом первой буквы файла.

- Нажатие " Пробел " и " Enter " - приступить к восстановлению файлов без предварительного запроса первой буквы (программа Unerase будет подставлять в имена файлов букву a, b и т.д.)

- Нажатие " Esc " приведет к отмене восстановления файлов.

Выход из программы unerase - все та же клавиша " Esc ".

E.2.6.2.3. Программа SmartCan.

Для реализации с помощью утилит Нортона режима "дежурного" удаления файлов (см. подраздел E.2.6.1.2.) в Norton Utilites for DOS v. 7.0 и старше существуют две утилиты: SmartCan и Erase Protect. Исходя из их описания, которое было у автора, он не понял особой разницы в принципе работы этих программ. Вероятно, это просто версии одного и того же разных групп программистов. Тем не менее автор опишет принцип работы обоих этих программ.

Программа SmartCan создает в корневой директории защищаемого диска директорию. В эту директорию помещаются все удаленные командой del файлы. Это напоминает каталог "Sentry", созданной программой undelete. В отличие от этой программы, при запуске программы SmartCan появляется диалоговое окно с настройками. Формат этого окна следующий:

Рис. E.10. Главное окно программы SmartCan

Слева расположен флажок Enable SmartCan - включение режима отслеживания удалений. Далее расположены переключатели, которые указывают на защищаемые файлы. Их значения:

- All Files - защищаются все файлы.

- Only the File Listed - только файлы, указанные в списке.

- All Files Except Thouse Listed - все файлы, кроме указанных в списке.

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

Еще ниже расположены флажки, которые определяют параметры защиты файлов. Первый флажок, установленный по-умолчанию, разрешает программе автоматически удалять из директории файлы, имеющие "срок удаления" более пяти дней (этот срок можно менять). Установка второго флажка (сброшенного по-умолчанию) ограничивает размер директории в <n> килобайт.

Справа от этих элементов управления находятся четыре кнопки: OK , Drives , Purge и Cancel . Выбор кнопки " Cancel " отменяет все изменения и приводит к выходу из программы. Выбор кнопки " OK " приводит к сохранению новых настроек и выходу из программы. Назначение других кнопок рассмотрим по-подробнее.

Рис. E.11. Окно Drive программы SmartCan

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

- все съемные диски (All Floppy Drives );

- все локальные жесткие диски (задан по-умолчанию) ( All Local Drives );

- все сетевые диски ( All Network Drives ).

Справа расположены две кнопки: OK и Cancel , назначение которых прозрачно.

Рис. E.12. Окно принудительного удаления файлов программы SmartCan

Кнопка " Purge... " открывает диалоговое окно, в котором можно принудительно удалить все или некоторые файлы из созданной директории. Оно содержит список файлов в директории и кнопки для их удаления.

Указанные установки записываются в файл SmartCan.ini .

Программа с установками по-умолчанию запускается автоматически из командной строки программой:

smartcan /ON

Как видно из описания этой программы, она позволяет осуществить "дежурное" удаление файлов не только на локальных дисках с FAT16, но и на сетевых дисках, работающих под управлением Novell NetWare и Microsoft Windows NT! Однако применимость этой программы ограничивается рабочими станциями под управлением MS-DOS и Microsoft Windows 3.1x. (А жаль!).

E.2.6.2.4. Программа Erase Protect.

Исходя из документации, программа Erase Protect осуществляет те же операции, что и программа SmartCan, но занимает при этом меньше памяти и лишена многих ее настроек и возможностей. Ее интерфейс более приближен к той же реализации "дежурного" сохранения, принятому в графическом интерфейсе.

Программа Erase Protect (ep) создает в корневом каталоге защищаемого диска скрытый каталог EP, в который она помещает удаленные системой файлы. Для запуска программы с параметрами по-умолчанию необходимо ввести следующую команду:

ep /ON

Параметры настройки по-умолчанию находятся в файле ep.ini . Изменить их можно, вызвав программу ep без параметров.

Рис. E.13. Главное окно программы Erase Protect

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

Рис. E.14. Окно выбора дисков программы Erase Protect

Первая кнопка называется " Choose drive ". Она предназначена для указания дисков, на которые распространяется защита. Обратите внимание; сетевые диски программой Erase Protect не поддерживаются!

Рис. E.15. Окно параметров защиты программы Erase Protect.

Вторая кнопка называется " File protection " и вызывает диалоговое окно, в котором устанавливаются параметры защиты файлов (тип файлов, расширения, атрибут "архивный" и т.п.)

Третья кнопка называется " Purge files " и предназначена для удаления некоторых или всех файлов из директории EP. При ее нажатии появляется соответствующее диалоговое окно.

Рис. E.16. Окно принудительного удаления файлов программы Erase Protect.

Последняя кнопка, " Quit " предназначена для выхода из программы и сохранение текущих изменений.

Содержание

E.2.7. Изменение атрибутов файла.

E.2.7.1. Смена атрибутов файла средствами MS-DOS.

E.2.7.2. Команда attrib операционной системы IBM OS/2 

E.2.7.3. Смена атрибутов в UNIX-подобных операционных системах.

E.2.7.3.1. Смена атрибутов с помощью символов.

E.2.7.3.2. Смена атрибутов абсолютным способом (с помощью маски).

E.2.7. Изменение атрибутов файла.

Помимо имени и расширения, у любого файла есть и дополнительные, важные для него свойства. Это так называемые Атрибуты . Атрибуты файлов указывают, какие операции разрешены для файла, а какие - нет. Для каждой из операционных систем выбираются свои атрибуты. Более того, у каждой из поддерживаемых одной операционной системой файловых систем могут быть разные атрибуты!

Атрибуты для различных файловых систем будут подробно рассмотрены в выпуске, посвященном дискам и файловым системам. В этом разделе будет рассмотрена достаточно тривиальная ситуация - смена атрибутов для файловой системы FAT.

E.2.7.1. Смена атрибутов файла средствами MS-DOS.

Атрибуты файлов в MS-DOS меняются командой attrib (от английского attribute - атрибут). Формат команды:

attrib [+R|-R][+A|-A][+S|-S][+H|-H] <имя_файла> [/S]

где <имя_файла> - полное или краткое имя фала, либо шаблон файлов.

Опции:

+R/-R - установка/сброс атрибутов файла "только чтение" (MS-DOS 3.00).

+A/-A - установка/сброс атрибута "архивный" (MS-DOS 3.20).

+H/-H - установка/сброс атрибута "скрытый" (MS-DOS 5.00)

+S/-S - установка/сброс атрибута "системный" (MS-DOS 5.00).

/S - устанавливает либо сбрасывает атрибуты не только в текущем, но и во всех подкаталогах текущего каталога.

Команда attrib без опций установки/сброса атрибутов выдает атрибуты файла(-ов).

Сообщения команды attrib.

a) Incorrect DOS version

(Неправильная версия DOS)

Команда attrib не совместима с данной версией DOS.

b) Invalid drive specification

(Неправильная спецификация дисковода)

Указан символ несуществующего дисковода.

c) Invalid number of parameters

(Неправильное число параметров)

Не указано имя файла.

d) Invalid path or file not found

(Неправильный путь или файл не найден)

Указано несуществующее имя дисковода или файла.

e) Syntax error

(Синтаксическая ошибка)

Вместо ключа /S указан другой ключ, либо отсутствуют символы "+" или "-" перед буквами R, A, H или S.

Примеры:

attrib myfile.txt

просмотр атрибутов у файла myfile.txt

attrib +R -A *.txt

установка атрибутов "только чтение" (+R) и сброс атрибута "архивный" (-A) у всех файлов с расширением *.txt в текущей директории.

attrib +R A:\*.* /S

установка защиты от удаления на все файлы дискеты, находящейся в дисководе A:\

Замечания:

1. Имя файла меняется командой ren без смены его атрибута. Изменение имени файла с установленным атрибутом "только чтение" командой move невозможно !

2. Команда cpoy некоторых версий MS-DOS сбрасывает атрибут "только чтение" у скопированных файлов. Команда же копирования в файловых оболочка обычно сохраняет атрибут "только чтение" у скопированных файлов.

E.2.7.2. Команда attrib операционной системы IBM OS/2

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

E.2.7.3. Смена атрибутов в UNIX-подобных операционных системах.

Атрибуты файлов в файловых системах UNIX-подобных операционных систем принято называть правами доступа. Существует три вида прав доступа:

1. Право на чтение - r.

2. Право на запись - w.

3. Право на исполнение - x.

Существуют также три категории доступа к файлам. К первой категории относится "владелец" - создатель файла. Ко второй категории относится любой из пользователей, работающий в одной группе с владельцем. И, наконец, к третьей категории относятся все остальные пользователи. При выводе на экран полного списка файлов выводится в один ряд и права доступа (см. рисунок E.5).

Команда chmod используется для смены прав доступа к файлу в любой категории. С ее помощью можно менять атрибуты файлов двумя способами: с помощью символов и с помощью маски. Рассмотрим эти способы по-подробнее.

E.2.7.3.1. Смена атрибутов с помощью символов.

При этом способе смены атрибутов права доступа обозначаются буквами r, w и x. Установка права обозначается как "+", а сброс - "-". Категории доступа обозначаются следующим образом: u (от User) - "владелец", пользовательские права, g (от Group) - права группы, и o (от Others) - права остальных пользователей компьютера. Есть специальный символ - a (от All). Он обозначает права всех категорий пользователей.

Пример:

chmod u+x g-r myfile

- устанавливает право доступа на выполнение дл пользователя и сброс права чтения для группы. Операция применяется к правам доступа файла myfile.

chmod u+w g+w o+w *.txt

или

chmod a+w *.txt

- установка прав на запись для всех файлов с расширением txt в любой категории доступа.

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

E.2.7.3.2. Смена атрибутов абсолютным способом (с помощью маски).

При изменении прав доступа по этому методу в качестве метки используются три восьмеричных числа. Смысл каждого числа - это представление атрибутов rwx в виде двоичной маски (рисунок E.17). Указание 1 в маске соответствует установке атрибута, а 0 - его сброса. Эта двоичная маска с тремя разрядами легко записывается в виде восьмеричного числа.

Рис. E.17. Образование маски из атрибутов.

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

Пример:

chmod 754 texts

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

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

Сводка команд работы с файлами в различных операционных системах приведена в файле: tab_e1.xls (18 432 байт, 02.01.2009, 10:53).