Иллюстрированный самоучитель по Linux

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

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

Одним из недостатков команды сору системы DOS является то, что в ней можно указать лишь одно имя файла или выражение. Например, по команде:

$ copy file /temp

…происходит копирование файла file в каталог / temp.

Другой вариант:

$ copy *.tsct /temp

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

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

Рассмотрим пример. Предположим, нам надо скопировать файлы FileOne, FileTwo и FileThree из текущего каталога в каталог /trap. Естественно, это можно сделать, введя команду копирования трижды.

$ ср FileOne /tmp
$ ср FileTwo /tmp
$ ср FileThree /tmp

Можно упростить задачу, объединив три команды в одну:

$ ср FileOne FileTwo FileThree /tmp

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

$ ср *.txt *.doc *.bak /tmp

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

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

ср: when copying multiple files, last argument must be a directory. Try 'cp – help' for more information.

(При копировании нескольких файлов последним надо указывать каталог. Для получения дополнительной информации введите 'ср – help'.)

Для копирования целого каталога со всеми подкаталогами введите команду ср с флажком – R. Если в текущем каталоге существует подкаталог SomeDir, то для рекурсивного копирования этого подкаталога (со всем его содержимым) в подкаталог / tmp воспользуйтесь следующей командой.

$ ср – R SomeDir /tmp

При копировании будет создан новый каталог /tmp/SomeDir, в который и будет скопировано содержимое исходного подкаталога SomeDir.

Дополнительные возможности

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.