Команды Linux · 4 min read · Sep 19, 2025

Учебник по команде cp в Linux для начинающих (8 примеров)

Если вы новичок в Linux, стоит знать, что командная строка — это очень мощный инструмент, способный выполнять почти все те задачи, которые вы можете выполнять через графический интерфейс. Однако чаще всего вы будете выполнять простые задачи в командной строке. Одной из таких простых задач является копирование файлов/каталогов.

Команда Linux cp предоставляет вам возможность копировать файлы и каталоги через командную строку. В этом учебнике мы обсудим основные способы использования этого инструмента с помощью простых примеров. Но прежде чем мы это сделаем, стоит отметить, что все примеры/инструкции, упомянутые в этой статье, были протестированы на Ubuntu 16.04LTS.

Команда cp в Linux

Если вам нужно выполнить операцию копирования в командной строке, cp должен быть вашей основной командой. Согласно ее странице man, инструмент может использоваться для копирования как файлов, так и каталогов. Вот общая синтаксическая структура команды:

cp [OPTION]... SOURCE DEST

Вышеуказанная команда копирует SOURCE в DEST. Следующие примеры в формате вопросов и ответов дадут вам лучшее представление о том, как работает этот инструмент.

Вопрос 1. Как выполнить базовую операцию копирования?

Основное использование cp очень простое — все, что вам нужно сделать, это указать источник и место назначения. Например, следующая команда копирует ‘file1’, находящийся в текущем рабочем каталоге, в каталог Рабочий стол:

cp file1 ~/Desktop

Вопрос 2. Как заставить cp запрашивать перед перезаписью?

Если место назначения, куда вы копируете файл, уже содержит файл с таким же именем, команда cp тихо перезаписывает существующий файл. Однако, если вы хотите, вы можете заставить инструмент запрашивать перед тем, как произвести перезапись. Это можно сделать, запустив cp в интерактивном режиме, который включается с помощью опции -i.

Например:

cp -i file1 ~/Desktop/

Как вы можете видеть на скриншоте выше, опция -i заставляет cp спрашивать пользователя, следует ли перезаписывать существующий файл с таким же именем в каталоге назначения.

Вопрос 3. Как заставить cp не перезаписывать существующий файл?

Иногда вы можете не захотеть, чтобы cp перезаписывал существующий файл, и вы также не хотите включать интерактивную опцию, о которой мы только что говорили в предыдущем разделе. В таких ситуациях вы можете использовать командную опцию -n.

Например:

cp -n file1 ~/Desktop/

Обратите внимание, что -n отменяет опцию -i, что означает, что даже если вы использовали -i с -n, команда не будет работать в интерактивном режиме.

Вопрос 4. Как копировать каталоги с помощью cp?

По умолчанию команда cp работает только с файлами. Если вы попытаетесь скопировать каталог, вы, вероятно, получите ошибку “cp: omitting directory”. Поэтому, когда требуется скопировать каталог, используйте командную опцию -r.

Например:

cp -r dir ~/Desktop

Вопрос 5. Как создать символические ссылки с помощью команды cp?

Если хотите, вы также можете попросить cp создать символическую ссылку вместо фактического копирования файла. Это можно сделать с помощью командной опции -s.

Например:

cp -s ~/htf-daily/file1 ~/Desktop/

Вопрос 6. Как заставить cp перезаписывать файл назначения только если источник новее?

Иногда требуется перезаписывать существующий файл только тогда, когда файл источника новее — подумайте об этом процессе как об обновлении файла. Это можно сделать с помощью командной опции -u.

Например, предположим, что вы хотите скопировать ‘file1’, находящийся в текущем рабочем каталоге, в каталог Рабочий стол, но в месте назначения уже есть файл с именем ‘file1’. И вы хотите скопировать только если источник новее, чем место назначения. Это можно сделать с помощью следующей команды:

cp -u file1 ~/Desktop

Вопрос 7. Как заставить cp не следовать символическим ссылкам в источнике?

По умолчанию команда cp следует символическим ссылкам в источнике. Это означает, что, например, если вы пытаетесь скопировать файл, который является символической ссылкой на другой, то по умолчанию действие копирования выполняется на файле, на который ссылается символическая ссылка. Что я имею в виду, так это то, что если ~/Desktop/file1 является символической ссылкой на ~/htf-daily/file1, и вы пытаетесь скопировать ~/Desktop/file1 в ~/Downloads, то ~/htf-daily/file1 будет скопирован туда.

Однако, если требуется скопировать саму символическую ссылку, это можно сделать с помощью командной опции -P, которая заставляет cp не следовать символическим ссылкам в источнике. Таким образом, в нашем случае команда будет:

cp -P ~/Desktop/file1 ~/Downloads/

Вопрос 8. Как копировать только атрибуты файла?

Иногда требование может заключаться только в копировании атрибутов (таких как права собственности и временные метки), а не содержимого файла. Это можно сделать с помощью командной опции –attributes-only вместе с опцией –preserve.

Например, у file1 следующие атрибуты:

-rw-rw-r-- 1 root himanshu 97 Jun 14 17:18 file1

А у file2 следующие атрибуты:

-rw-rw-r-- 1 root himanshu 179 May 25 15:09 file2

*Примечание: Вы можете использовать команду ls, чтобы получить эти атрибуты для файла. Для получения дополнительной информации о ls, перейдите сюда.*

И требование состоит в том, чтобы скопировать атрибуты file2 и иметь их для file1, тогда вот как это можно сделать:

cp --attributes-only --preserve file2 file1

Вот как работает вышеупомянутая команда:

Заключение

Как вы согласитесь, основное использование команды cp не так уж сложно понять. В этом учебнике мы попытались охватить большинство полезных опций командной строки. Попробуйте их у себя, а затем перейдите на страницу man инструмента, чтобы увидеть, какие другие функции/опции предлагает команда. Если у вас есть какие-либо сомнения или вопросы, оставьте комментарий ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.