Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Утилиты обработки Файлов

Пред. 

Глава 3. Введение в командную строку

 След.


Утилиты обработки Файлов

В этом контексте под обработкой файлов подразумевается копирование, перемещение и удаление файлов. Позже мы рассмотрим способы изменения атрибутов файлов (владельцев, разрешения).

mkdir, touch: Создание пустых каталогов и файлов

Команда mkdir (MaKe DIRectory - создать каталог) используется для создания каталогов. Ее синтаксис довольно прост:

mkdir [опции] <каталог> [каталог ...]

Только одна опция ничего не стоит: опция -p. Она выполнит два действия:

  1. создаст родительские каталоги, если они не существовали до этого. Без этой опции mkdir просто вызовет сбой, жалуясь на отсутствие заявленных каталогов;
  2. молча выполнит возврат, если каталог, который вы хотели создать, уже существует. Для сравнения, если вы не указали опцию -p, mkdir возвратит сообщение об ошибке, жалуясь на то, что каталог уже существует.

Вот несколько примеров:

  • mkdir foo: создает каталог foo в текущем каталоге;
  • mkdir -p images/misc docs: создает каталог misc в каталоге images. Сначала создается последний каталог, если такой не существует (-p); также создается каталог с именем docs в текущем каталоге.

Изначально команда touch предназначалась не для создания файлов, а для обновления времени последнего доступа к файлу и времени его изменения[3]. Однако touch создаст пустые файлы, если они не существуют. Ее синтаксис:

touch [опции] файл [файл...]

Таким образом, выполнение команды:

touch file1 images/file2

создаст в текущем каталоге пустой файл с именем file1 и пустой файл file2 в каталоге images, если ранее эти файлы не существовали.

rm: Удаление файлов или каталогов

Команда 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.

[Warning]

Внимание

При использовании rm файлы удаляются безвозвратно. Способа для их восстановления не существует! (Ну, вообще-то для этого все-таки есть несколько способов, но это нетривиальная задача.) Не раздумывайте при использовании опции -i, чтобы убедиться в том, что вы не удалите по ошибке что-нибудь важное.

mv: Перемещение или удаление файлов

Синтаксис команды 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: Копирование файлов и каталогов

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 (mtime); и, наконец, дата последнего изменения содержимого файла (ctime).

[4] Для пользователя достаточно иметь доступ для записи в каталог, чтобы он мог удалять файлы в нем, даже если он не является владельцем файлов.


Пред. 

Уровень выше

 След.

Глава 3. Введение в командную строку 

Начало

 Обработка атрибутов файлов