Описание команды cp
Синтаксис
что_копируем — файл, несколько файлов, директория или несколько директорий, которые необходимо скопировать.
куда_копируем — название файла, в который выполняется копирование другого файла, или директория, в которую копируются исходные файлы или директории.
Опции
МЕТОД определяет, каким образом формируется имя резервной копии. МЕТОД может принимать значения:
- none или off — не делать резервных копий, даже если включена опция --backup
- numbered или t — имя резервной копии получит числовой индекс (пример: myfile.txt~2~).
- existing или nil — если в директории уже есть резервные копии с числовыми индексами, то использовать числовые индексы для новых резервных копий, во всех остальных случаях использовать метод simple.
- simple или never — делать обычные резервные копии (пример: myfile.txt~).
Если возможно, то можно использовать дополнительные атрибуты: context, links, xattr, all
Например, при использовании команды cp --parents a/b/myfile dstdir, файл myfile будет скопирован в директорию dstdir/a/b. То есть будут созданы промежуточные директории.
КОГДА может принимать значения:
always — всегда создавать «легкую» копию файла. Создается ссылка на исходные данные. Фактического копирования данных не происходит. Блоки данных копируются только тогда, когда они изменяются.
auto — создается обычная полная копия.
КОГДА может принимать значения:
auto — (поведение по умолчанию) копировать разреженные файлы в разреженные файлы.
always — результирующий файл всегда разреженный, если в исходном есть достаточное количество нулевых последовательностей.
never — не делать результирующие файлы разреженными.
Примеры использования команды cp
Скопировать файл в другую директорию
Скопируем файл myfile.txt в директорию mydir:
cp myfile.txt mydir
Скопируем файл myfile1.txt в новый файл myfile2.txt
cp myfile1.txt myfile2.txt
Скопировать несколько файлов
Для копирования нескольких файлов нужно перечислить их через пробел. Послений параметр определяет результирующую директорию, в которую будут скопированы файлы.
cp /etc/config/myfile1.txt /home/pupkin/myfile1.txt /mnt/some/myfile3.txt mydir
Скопировать файл с подтверждением
Выведем запрос на подтверждение перезаписи результирующего файла, если он существует:
cp -i myfile1.txt myfile2.txt
cp: переписать 'myfile2.txt'? y
Показать информацию о копируемых файлах
При использовании опции -v выводится информация о том, какие файлы и куда копируются.
cp -v myfile1.txt myfile2.txt mydir/
'myfile1.txt' -> 'mydir/myfile1.txt'
'myfile2.txt' -> 'mydir/myfile2.txt'
Скопировать директорию
Чтобы скопировать директорию и все ее содержимое нужно использовать опцию -r
cp -r /home/pupkin/mydir /mnt/usbflash
Скопировать только если файлы новее
Скопируем файлы вида myfile*.txt (например, это могут быть файлы myfile1.txt myfile10.txt myfile2.txt) в директорию mydir, но если результирующий файл существует, то копирование выполняется только в том случае, если исходный файл новее.
cp -u myfile*.txt mydir
Не перезаписывать существующие файлы
Чтобы существующие файлы не перезаписывались, используется опция -n
cp -n /home/pupkin/mydir /mnt/usbflash
Скопировать только атрибуты
Скопируем только атрибуты файла. Содержимое файла не копируется.
cp --attributes-only myfile1.txt myfile2.txt
Создать резервную копию для результирующих файлов, если они существуют
Скопируем файл myfile1.txt в файл myfile2.txt. Если файл myfile2.txt существует, то будет создана его резервная копия.
cp -b myfile1.txt myfile2.txt
Принудительно перезаписывать существующие файлы назначения
Если файл назначения существует и не может быть открыт и удален, то можно использовать опцию -f, чтобы принудительно перезаписать такой файл:
cp -f myfile1.txt myfile2.txt
Комментарии
09:15
07:07