Для копирования файлов и каталогов применяется команда cp (от англ. copy – копировать). Команда cpтребует присутствия двух обязательных параметров: первый – копируемый файл или каталог (или их список), второй – файл или каталог назначения. Как обычно, в именах файлов и каталогов можно использовать полные и относительные пути и шаблоны.
Синтаксис команды ср:
ср [ключи] имя_исходного_файла/каталога имя_целевого_файла/каталога
Если последний аргумент является именем существующего каталога, то команда ср копирует каждый указанный исходный файл в файл с тем же именем в целевой каталог.
Если аргументами команды ср являются имена двух файлов (каталогов), то команда ср копирует исходный файл (каталог) в файл (каталог), имя которого задано целевым файлом (каталогом).
Если последний аргумент не является каталогом и при этом задано несколько имен файлов, то команда ср завершается с ошибкой.
По умолчанию команда cp, как и многие другие команды, будет работать с файлами в текущем каталоге.
|
|
Нужно иметь в виду, что в Unix команда cp нередко настроена таким образом, что при попытке скопировать файл поверх уже существующего файла никакого предупреждения не выводится. В этом случае файл будет просто перезаписан, а данные, которые содержались в старой версии файла, безвозвратно потеряны. Поэтому при использовании cpследует всегда быть внимательным и проверять имена файлов, которые нужно скопировать.
Некоторые флаги команды ср:
-i, --interactive | требует подтверждения при перезаписи существующих целевых файлов |
-R, --recursive | копирует каталоги рекурсивно |
-v, --verbose | печатает имя каждого файла перед его копированием |
-u, --update | копирует только при условии, что исходный (копируемый) файл новее, чем целевой файл, или целевой файл вообще отсутствует |
Примеры:
cp /etc/rc.d/init.d/httpd | копирование файла /etc/rc.d/init.d/httpd в текущий каталог |
cp -R prog dir | рекурсивное копирование каталога prog в каталог dir |
cp ~/labs/lab1 ~/copy | копирование файла ~/labs/lab1 в каталог ~/copy |
cp ~/labs/lab1 ~/copy/l1 | копирование файла ~/labs/lab1 в каталог ~/copy с новым именем l1 |