Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОПЕРАЦИОННЫЕ СИСТЕМЫ И ОБОЛОЧКИ.doc
Скачиваний:
46
Добавлен:
21.09.2019
Размер:
799.74 Кб
Скачать

6.6.4. Создание файлов и каталогов

Файлы в ОС UNIX создаются командами и утилитами, такими, например, как

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

UNIX используется несколько различных типов файлов, различающихся по

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

или иных операций над файлами, однако, структура файлового дерева не зависит от типа

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

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

Для создания пустых (не содержащих данные) файлов, используется команда

touch:

touch имя_файла [имя_файл ...]

74

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

Если имя_файла уже существует в каталоге, то его данные (по умолчанию) будут

потеряны.

Для создания новых каталогов используется команда mkdir:

mkdir имя_каталога [ имя_каталога . . .]

При создании новых каталогов, старайтесь следовать некоторые соглашения,

например, для того, чтобы различать имена файлов и каталогов:

используйте заглавную букву на месте первой буквы имени каталога,

создавайте отдельные каталоги для файлов, связанных одной темой: один каталог

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

Опция –p команды mkdir позволяет создать дочерний каталог во вновь создаваемом

каталоге:

mkdir –p имя_каталога/имя_подкаталога . . .

Для копирования файлов используется команда cp:

cp имя_исходного_файла имя_конечного_файла

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

исходного файла.

Команда может применяться как для копирования одного исходного файла в

конечный файл, так и нескольких файлов:

cp имя_исходного_файла имя_конечного_файла

cp имя_исходного_файла1 [имя_исходного_файла2 …]

имя_конечного_файла

В первом случае, когда исходный файл копируется в конечный:

- если конечный файл является каталогом, то исходный файл копируется в этот

каталог с тем же именем;

- если конечный файл является обычным файлом и файл с таким же именем

существует, то содержимое исходного файла заменяет содержимое уже

существующего файла.

Во втором случае все исходные u1092 файлы копируются с теми же именами в конечный

файл, который должен быть каталогом.

В аргументах команды могут указываться как абсолютные, так и относительные

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

Если в качестве аргумента конечного файла указано имя каталога, то этот каталог

должен уже существовать, так как команда cp не создает новых каталогов.

Для копирования файлов в текущий каталог можно использовать имя . (точка):

$ cp ../dp40101/file .

При отсутствии соответствующих прав доступа как к исходному, так и к конечному

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

75

Перемещение файлов можно выполнить командой mv:

mv имя_исходного_файла имя_конечного_файла

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

исходного файла.

Команда может применяться как для перемещения одного исходного файла в

конечный файл, так и нескольких файлов:

mv имя_исходного_файла имя_конечного_файла

mv имя_исходного_файла1 [имя_исходного_файла2 …]

имя_конечного_файла

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

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

этот каталог с тем же именем;

- если конечный файл является обычным файлом и файл с таким же именем

существует, то содержимое исходного файла заменяет содержимое уже

существующего файла.

Во втором случае все исходные файлы перемещаются с теми же именами в

конечный файл, который должен быть каталогом.

Если имена исходного и конечного файлов относятся к одному каталогу, то

команда изменяет имя исходного файла на имя конечного:

mv oldname newname

Для удаления файлов используется команда rm:

rm имя_файла [имя_файла …]

Команда rm удаляет файлы, имена которых указаны в команде.

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

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

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

команды.

Команда rm позволяет делать эту проверку в интерактивном режиме. Для этого

используется опция –i:

$ rm –i *

file2 ?

$

В этом случае требуется отвечать на каждый запрос нажатием клавиш y<Enter>,

если файл надо удалить или n<Enter>, если файл удалять не следует.

Команда rm по умолчанию удаляет только файлы, однако использование опции –r

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

сообщений.

$ rm –r *

76

$

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

каталогов.

ВНИМАНИЕ! Будьте особенно осторожны при использовании приведенной выше

команды!

Для удаления каталогов используется команда rmdir:

rmdir имя_каталога [имя_каталога …]

Эта команда удаляет каталоги при условии, что они являются пустыми, т.е. не

содержат записей с индексами файлов.