Перейти к основному содержанию
Рецепты Linux

Main navigation

  • Основы
  • Система
  • Команды
  • Программы
  • Дистро
  • Интерфейсы
  • Устройства
  • Доки
User account menu
  • Войти

Строка навигации

  1. Главная

Команда Linux cp

Автор: admin, 19 июля, 2022
Команды

В Linux команда cp (copy) используется для копирования файлов из одного места в другое. Утилита может также копировать каталоги.

Использование команды Linux cp с примерами

Исходный файл/каталог копируется в файл/каталог, заданный в параметре Целевой файл/каталог. Если целевой файл/каталог существует, то его содержимое заменяется без предупреждения.

Содержание

  • Синтаксис
  • Опции
  • Примеры использования в Linux команды cp
    • Копирование файла
    • Копирование нескольких файлов
    • Предотвращение перезаписи существующих файлов
    • Создание автоматических резервных копий
    • Копирование каталога
    • Копирование лишь содержимого каталога
    • Копирование нескольких каталогов
    • Сохранение атрибутов при копировании
  • Заключение

Синтаксис

cp [ПАРАМЕТР]… ИСТОЧНИК НАЗНАЧЕНИЕ

Опции

-a, --archive
То же, что и -dPR --preserve=all
    --backup[=КОГДА]
Создавать резервную копию каждого целевого файла
-b
То же, что и --backup, но без аргумента
-d
То же, что и --no-dereference --preserve=link
-f, --force
Если невозможно открыть существующий файл, то удалить его и попробовать ещё раз (этот параметр игнорируется, если также указан параметр -n)
-i, --interactive
Спрашивать перед тем как переписывать (отменяет ранее указанный параметр -n)
-L, --dereference
Всегда следовать символьным ссылкам в ИСТОЧНИКЕ
-n, --no-clobber
Не перезаписывать существующий файл (отменяет ранее указанный ключ -i)
-p
То же, что и --preserve=mode,ownership,timestamps
    --preserve[=СПИС_АТТР]
Сохранять указанные атрибуты (по умолчанию: mode,ownership,timestamps) и, если возможно, дополнительные атрибуты: context, links, xattr, all
    --no-preserve=СПИС_АТТР
Не сохранять указанные атрибуты
    --parents
Добавить исходный путь к КАТАЛОГУ
-R, -r, --recursive
Рекурсивно копировать каталоги
-S, --suffix=СУФФИКС
Использовать для запасных копий заданный СУФФИКС
    --target-directory=КАТ
Скопировать все ИСТОЧНИКИ в КАТАЛОГ
-u, --update
Копировать только тогда когда исходный файл новее чем файл назначения, или когда файл назначения отсутствует
-v, --verbose
Пояснять что будет сделано

Примеры использования в Linux команды cp

В домашнем каталоге мною были создвны каталоги Directory_Source и Directory_Target. В первый из них я поместил файлы readme и .vimrc.

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

В пустой каталог назначения копируем файл readme:

oleg@mobile:~:$ cp Directory_Source/readme Directory_Target

В файл readme, скопированный в каталог назначения, копируем изменённый файл readme:

oleg@mobile:~:$ cp Directory_Source/readme Directory_Target/readme

В результате копирования содержимое файла readme было перезаписано без всякого предупреждения.

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

oleg@mobile:~:$ cp Directory_Source/readme .vimrc Directory_Target

Файлы были скопированы в каталог назначения:

oleg@mobile:~:$ ls -la Directory_Target
итого 20
drwxr-xr-x  2 oleg users  4096 июл 19 12:28 ./
drwx--x--x 68 oleg   100 12288 июл 19 12:28 ../
-rw-r--r--  1 oleg users     0 июл 19 12:28 readme
-rw-r--r--  1 oleg users  3740 июл 19 12:28 .vimrc

Предотвращение перезаписи существующих файлов

Для предотвращения перзаписи существующего файла используется опция -n:

oleg@mobile:~:$ cp -n Directory_Source/readme Directory_Target

При использовании опции -i система будет требовать подтвержения перезаписи файла:

o cp -i Directory_Source/readme Directory_Target
cp: переписать 'Directory_Target/readme'? 

От вас потребуется ответ y или n.

Создание автоматических резервных копий

В каталог назначения копируем изменённый файл readme:

oleg@mobile:~:$ cp -b Directory_Source/readme Directory_Target

Получаем следующий результат:

oleg@mobile:~:$ ls -la Directory_Target
итого 24
drwxr-xr-x  2 oleg users  4096 июл 19 12:48 ./
drwx--x--x 68 oleg   100 12288 июл 19 12:48 ../
-rw-r--r--  1 oleg users   145 июл 19 12:48 readme
-rw-r--r--  1 oleg users     0 июл 19 12:47 readme~
-rw-r--r--  1 oleg users  3740 июл 19 12:33 .vimrc

Как видим в каталоге сохранена резервная копия файла readme~.

Копирование каталога

oleg@mobile:~:$ cp -r Directory_Source Directory_Target

oleg@mobile:~:$ ls -la Directory_Target
итого 20
drwxr-xr-x  3 oleg users  4096 июл 19 12:58 ./
drwx--x--x 68 oleg   100 12288 июл 19 12:48 ../
drwxr-xr-x  2 oleg users  4096 июл 19 12:57 Directory_Source/

Теперь у каталога Directory_Target появился подкаталог Directory_Source.

Копирование лишь содержимого каталога

Для копирования содержимого исходного каталога в каталог назначения следует к имени исходного каталога добавить /.:

oleg@mobile:~:$ cp Directory_Source/. Directory_Target

Результат:

oleg@mobile:~:$ ls -la Directory_Target/
итого 24
drwxr-xr-x  2 oleg users  4096 июл 19 13:06 ./
drwx--x--x 68 oleg   100 12288 июл 19 12:48 ../
-rw-r--r--  1 oleg users   145 июл 19 13:06 readme
-rw-r--r--  1 oleg users  3740 июл 19 13:06 .vimrc

Копирование нескольких каталогов

Копирование нескольких каталогов или лишь их содержимого выполняется также, как и копирование одного каталога или его содержимого. Надо лишь перечислить все исходные каталоги.

Сохранение атрибутов при копировании

При копировании файлов изменяются права доступа и временные метки. При необходимости их сохранения при копировании используется поция -p, позволяющая сохранить режим доступа и временную метку.

Заключение

Вы убедились в том, что в Linux команда cp является очень нужной. Надеюсь на то, что эта статья будет вам полезна. Успехов!

Последние материалы

  • Эмулятор терминала Terminator
    3 hours 22 minutes ago
  • Приложение scanimage
    6 days 1 hour ago
  • Утилита sensors
    1 week 2 days ago
  • Сканер Rkhunter
    2 weeks 3 days ago
  • Программа resize2fs
    3 weeks 2 days ago
RSS feed

Secondary menu

  • О проекте

© 2008–2025 Олег Меньшенин mensh@yandex.ru