Команды 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 инструмента, чтобы увидеть, какие другие функции/опции предлагает команда. Если у вас есть какие-либо сомнения или вопросы, оставьте комментарий ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.