В данном контексте обработка файлов обозначает их копирование, перемещение и удаление. Позже мы рассмотрим способы изменения их атрибутов (владелец, права).
mkdir (MaKe DIRectory (создать каталог)) используется для создания каталогов. Ее синтаксис простой:
mkdir [options] <directory> [directory ...] |
Только один параметр ничего не обозначает: -p . Он делает две вещи:
с ним команда будет создавать родительские каталоги, если они не существовали ранее. Без этого параметра mkdir просто может упасть, пожаловавшись, что упомянутые родительские каталоги не существуют;
с ним команда будет возвращаться в командную строку без сообщений, если каталог, который вы хотите создать уже есть. Обратно, если вы не укажете параметра -p, mkdir вернет ошибку, сообщив что каталог уже имеется.
Изначально, команда touch не предназначалась для создания файлов, а только для обновления доступа к файлу и изменения времени создания файла [3]. Однако, touch будет создавать пустые файлы, если их не существовало ранее. Синтаксис такой:
touch [options] file [file...] |
touch file1 images/file2 |
создаст пустой файл с именем file1 в текущем каталоге и пустой файл file2 в каталоге images, если файлы еще не существовали до этого.
Команда rm (ReMove) заменяет команды DOS del и deltree, и имеет много дополнительных параметров . Ее синтаксис следующий:
rm [options] <file|directory> [file|directory...] |
Опции включают:
-r, или -R: удаляет рекурсивно. Этот параметр обязательный для удаления каталогов, пустых или нет. Однако вы можете также использовать rmdir для удаления пустых каталогов.
-i: запросить подтверждение перед каждым удалением. Обратите внимание, что по умолчанию в Mandrake Linux, rm является alias (алиасом) команды rm -i, в целях безопасности (подобные алиасы есть для команд cp и mv). Вы можете изменить свое мнение относительно полезности этих алиасов. Если вы захотите удалить их, отредактируйте ваш файл ~/.bashrc и добавьте строку: unalias rm cp mv.
-f, обратная опции -i, форсированное удаление файлов или каталогов даже если пользователь на имеет права на запись файлов. [4].
rm -i images/*.jpg file1: удаляет все файлы с окончанием .jpg в названии в каталоге images и удаляет файл file1 в текущем каталоге с запросом подтверждения. Ответьте y чтобы подтвердить удаление, n чтобы отменить.
rm -Rf images/misc/ file*: удаляет без вопросов весь каталог misc/ в каталоге images/ вместе со всеми файлами в текущем каталоге, чьи имена начинаются с file.
Синтаксис команды mv (MoVe) следующий:
mv [options] <file|directory> [file|directory ...] <destination> |
Некоторые параметры:
-f: форсировать операцию –, никаких предупреждений, если существующие файлы перезаписываются.
-i: напротив, спрашивает подтверждение у пользователя, перед тем как переписать существующий файл.
-v: verbose (подробный) режим, сообщает о всех изменениях или активности.
Несколько примеров:
mv -i /tmp/pics/*.png .: переносит все файлы из каталога /tmp/pics/ с окончаниями в именах .png в текущий каталог (.), но спрашивает подтверждение, перед тем как переписать любой файл.
mv foo bar: переименовывает файл foo в bar. Если уже существует каталог bar, эффектом этой команды будет перенос всего каталога foo (самого каталога и всех его файлов и каталогов в нем рекурсивно) в каталог bar .
mv -vf file* images/ trash/: переносит без подтверждения все файлы текущего каталога, имена которых начинаются с file, вместе со всем каталогом images/ в каталог trash/, и показывает информацию о каждой операции.
cp (CoPy) замещает команды DOS copy и xcopy и имеет множество дополнительных параметров. Ее синтаксис:
cp [options] <file|directory> [file|directory ...] <destination> |
cp имеет много параметров. Вот основные из них:
-R: рекурсивное копирование; обязательно для копирования каталогов, даже пустых.
-i: запрос подтверждения перед перезаписью любого файла, который может быть перезаписан.
-f: обратный -i, заменяет любой существующий файл без подтверждения.
-v: подробный (verbose) режим, отображает все действия, производимые cp.
cp -i /tmp/images/* images/: копирует все файлы в каталоге /tmp/images/ в каталог images/, расположенный в текущем каталоге. Запрашивает подтверждение, если файл должен быть перезаписан.
cp -vR docs/ /shared/mp3s/* mystuff/: копирует весь каталог docs плюс все файлы из каталога /shared/mp3s в каталог mystuff.
cp foo bar: делает копию файла foo с именем bar в текущем каталоге.
[3] В UNIX есть три различных временных метки для каждого файла: время последнего обращения к файлу (atime), то есть последний раз когда файл открывался на чтение или запись; последняя дата изменения атрибутов inode (mtime); и время, когда изменялось последний раз содержимое файла. (ctime).
[4] Для пользователя достаточно иметь права записи в каталоге, чтобы удалять файлы в нем, даже если он не владелец файлов, которые там лежат.