В данном контексте под обработкой файлов подразумевается копирование, перемещение и удаление файлов. Позже мы рассмотрим способы изменения атрибутов файлов (владелец, права доступа).
Команда mkdir (MaKe DIRectory - создать каталог) используется для создания каталогов. Ее синтаксис довольно прост:
mkdir [опции] <каталог> [каталог ...]
Только на одну опцию имеет смысл обратить внимание: опция -p. Она выполняет два действия:
создает родительские каталоги, если они не существовали до этого. Без этой опции mkdir просто вызовет сбой, жалуясь на отсутствие заявленных каталогов;
молча завершит работу если каталог, который вы хотели создать, уже
существует. Для сравнения, если вы не указали опцию -p,
mkdir возвратит сообщение об ошибке, жалуясь на то, что каталог уже
существует.
Изначально команда touch предназначалась не для создания файлов, а для обновления времени последнего доступа к файлу и времени его изменения[3]. Однако touch создаст перечисленные пустые файлы, если они не существуют. Ее синтаксис:
touch [опции] файл [файл...]
Таким образом, выполнение команды:
touch file1 images/file2
создаст в текущем каталоге пустой файл с именем file1
и пустой файл file2 в каталоге
images, если ранее эти файлы не существовали.
Команда rm (ReMove - удалить) является аналогом команд DOS del и deltree, и содержит дополнительные опции. Ее синтаксис выглядит следующим образом:
rm [опции] <файл|каталог> [файл|каталог...]
Опции включают:
-r или
-R: рекурсивное удаление. Эта опция является
обязательной для удаления каталога, пустого или нет.
Однако для удаления пустых каталогов вы также можете воспользоваться
командой rmdir.
-i: запрос подтверждения перед каждым удалением. Обратите
внимание, что по умолчанию в Mandrakelinux, rm по
соображениям безопасности - это
алиас
команды rm -i (похожие алиасы существуют для
cp и mv). Однако ваше мнение
относительно полезности этих алиасов может измениться. Если вы хотите
удалить их, вы можете создать пустой файл ~/.alias,
который предотвратит использование общесистемных алиасов. Или же вы можете
отредактировать свой файл ~/.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 [опции] <файл|каталог> [файл|каталог ...] <назначение>
Обратите внимание, что когда вы перемещаете несколько файлов, назначением должен быть каталог. Чтобы переименовать файл, просто переместите его в файл с новым именем.
-f: форсирование операции –– если
перезаписывается существующий файл, предупреждения не выводятся.
-i: противоположное действие. У пользователя спрашивается
подтверждение перед перезаписью существующего файла.
-v:
подробный
режим, сообщает обо всех изменениях и действиях.
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 [опции] <файл|каталог> [файл|каталог ...] <назначение>
cp имеет много опций. Вот самые общие из них:
-R: рекурсивное копирование;
обязательна для копирования каталога, даже если он
пуст.
-i: запрос подтверждения перед перезаписью любых файлов,
которые могут быть перезаписаны.
-f: противоположность -i, заменяет
любые существующие файлы без запроса подтверждения.
-v: подробный режим, сообщает обо всех действиях,
выполняемых cp.
cp -i /timages/* images/: копирует все файлы из
каталога /timages/ в каталог
images/, находящийся в текущем каталоге.
Запрашивается подтверждение, если должен быть перезаписан файл.
cp -vR docs/ /shared/mp3s/* mystuff/: копирует весь
каталог docs, плюс все файлы из каталога
/shared/mp3s в каталог
mystuff.
cp foo bar: делает копию файла
foo в файл с именем bar в
текущем каталоге.
[3]
В UNIX® для всех файлов существуют три разных временных метки: дата
последнего доступа к файлу (atime), т.е. дата, когда в
последний раз файл открывался для чтения или записи; дата изменения
атрибутов inode (ctime); и, наконец, дата последнего
изменения содержимого файла
(mtime).
[4] Для пользователя достаточно иметь доступ для записи в каталог, чтобы он мог удалять файлы в нем, даже если он не является владельцем файлов.