В отличие от MS-DOS, в операционной системе Linux нет команд, копирующих или только файлы (как команда copy), или только файлы с деревом каталога (команда xcopy). Оба этих действия выполняет команда cp, которая, в зависимости от контекста, копирует и файлы, и каталоги. Ее синтаксис следующий:
cp <опции> {<источник>} <приемник>
Смысл команды следующий.
1. И источник, и приемник - имена файлов. Тогда команда просто создает копию (дубликат) файла с новым именем в текущем каталоге.
Пример:
cp oldfile newfile
2. Источник - имя файла, приемник - каталог. Команда создает копию файла - источника в указанном каталоге - приемнике.
Пример:
cp oldfile /home/den/mydir
3. Источник шаблон файла, приемник - каталог. Удовлетворяющие шаблону файлы копируются в каталог - приемник.
Пример:
cp ???file /home/den/mydir
4. Источник - имя файла (краткое или полное), приемник - полное имя файла. Происходит копирование указанного файла в каталог вместе с его переименованием.
Примеры:
cp thefile newdir/oldfile
- копирует файл thefile в подкаталог newdir в файл oldfile
cp newdir/oldfile newfile
- копирует файла oldfile из подкаталога newdir в файл newfile в текущем каталоге.
cp thefile ../file
- копирует файл thefile в файл file родительского каталога.
5. Источник - каталог + шаблон *.*, приемник - каталог. Копируются файлы из каталога - источника в каталог приемник. Подкаталоги копируются только в том случае, если указан ключ -r (смотри ниже).
Пример:
cp mydir/*.* newdir
- копируются все файлы из каталога mydir в каталог newdir.
Остальные комбинации являются запрещенными.
Основные опции команды cp.
-i - выдача запроса на подтверждение перезаписи. Дело в том, что при копировании в Linux происходит следующее:
a) Если файла с именем, указанным в приемнике, не существует, то он создается и в него записывается информация.
b) Если файл с именем, указанным в приемнике, существует, то он СТИРАЕТСЯ, а на его месте создается новый файл БЕЗ ПРЕДУПРЕЖДЕНИЯ!
Чтобы выдать предупреждение, вводится опция -i. Пример ее использования:
cp -i newfile oldfile
После этой команды будет выдано предупреждение:
Overwrite oldfile?
Если на запрос ответить нажатием клавиши Y, то файл перезапишется. Любой другой ответ будет воспринят как "нет".
-r - при копировании использовать подкаталоги любой вложенности. Аналогична использованию ключей /S и /A в команде DOS xcopy.