Как скопировать файл в Linux через терминал

При работе с Linux через терминал не редко приходится создавать копии файлов или копировать файлы из одной папки в другую. Например, это могут быть файлы конфигураций, которые используются для настройки программ, или просто документы пользователя. В данной инструкции мы расскажем, как скопировать файл в Linux через терминал и какие команды для этого потребуются. Статья будет актуальной для любого дистрибутива Linux, например, Ubuntu Linux или Debian

Команда для копирования «cp»

Для копирования файлов в Linux через терминал используется команда «cp» (от англ. «copy»). Команда «cp» представляет собой утилиту командной строки для копирования файлов и каталогов. Она поддерживает перемещение одного или нескольких файлов или папок с параметрами для создания резервных копий и сохранения атрибутов.

В общем случае, для того чтобы скопировать файл в Linux через терминал достаточно ввести команду «cp» и передать ей имя исходного и нового файла. Например, для того чтобы скопировать «file.txt» в новый «newfile.txt» нужно выполнить следующую команду:

cp file.txt newfile.txt

Обратите внимание, по умолчанию команда «cp» всегда будет перезаписывать уже имеющиеся файлы копируемыми, но это поведение можно изменить с помощью опций, которые мы рассмотрим во второй части статьи.

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

Таким же образом выполняется копирование файла в другую папку. Вводим команду «cp», указываем путь к файлу и затем каталог, в который его нужно скопировать. Например, для того чтобы скопировать «file.txt» в каталог «folder» нужно выполнить вот такую команду:

cp file.txt folder/

копирование файла в папку

Естественно, если это необходимо, вы можете вводить полные пути к файлам и папкам, которые копируете командой «cp». Например, копирование может выглядеть так:

cp ~/temp/newfile.txt ~/temp/folder/

копирование с указанием полного пути

Еще один пример копирования с указанием полного пути:

копирование с указанием полного пути

При необходимости можно скопировать сразу несколько файлов. В этом случае сначала нужно перечислить файлы, а потом указать папку, в которую их нужно скопировать. Например, для того чтобы скопировать «file.txt» и «newfile.txt» в каталог «folder» нужно выполнить следующее:

cp file.txt newfile.txt folder/

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

Аналогичное действие можно выполнить и с помощью маски. Например, для того чтобы скопировать все txt-документы в определенную директорию можно выполнить вот такую команду:

cp *.txt folder/

копирование файлов по маске

При копировании каталогов нужно добавлять параметр «-R», так как без этого «cp» будет выдавать ошибку. Поэтому, для копирования каталогов нужно ввести команду «cp -R» и указать исходный и новый каталог. Например, для того чтобы скопировать каталог «folder» в «newfolder» вам нужно выполнить вот такую команду:

cp -R folder/ newfolder/

копирование папок

Как и в случае с файлами, папки можно копировать сразу по несколько штук. Для этого нужно ввести «cp», перечислить копируемые папки и указать каталог назначения. Например, для того чтобы скопировать папки «folder» и «folder2» в «newbigfolder» нужно выполнить следующее:

cp -R folder/ folder2/ newbigfolder/

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

Синтаксис и опции команды «cp»

Команда «cp» имеет множество опций, с помощью которых можно контролировать буквально все аспекты копирования файлов. Синтаксис команды выглядит следующим образом:

cp [опции] источник приемник

Самых опций у команды «cp» очень много, поэтому мы рассмотрим только самые простые и часто используемые. С остальными опциями вы сможете ознакомиться отдельно, выполнив в терминале Linux команду «man cp».

-R , -r , --recursive
Рекурсивное копирование каталогов.

-b
Создание резервной копии для всех файлов, которые могли быть перезаписаны или удалены при копировании.

-d
Копирование символических ссылок, а не файлов, на которые они ссылаются.

-L
Копировать файлы, а не символические ссылки.

-l , --link
Создание жестких ссылок, а не их копирование.

-P, --no-dereference
Не переходить по символическим ссылкам.

-f, --force
Если существующий файл назначения не может быть открыт, удалите его и повторите попытку.

-i, --interactive
Запрос перед перезаписью файлов.

-n, --no-clobber
Не перезаписывать файлы.

-s, --symbolic-link
Создавать символические ссылки вместо копирования файлов.

-t, --target-directory=directory
Обрабатывать место назначения как директорию.

-T, --no-target-directory
Обрабатывать место назначения как директорию.

-u , --update
Копировать только если исходный файл новее.

-v , --verbose
Вывод подробной информации.

Как уже было сказано, для выполнения команды копирования в терминале Linux сначала нужно ввести «cp», потом используемые опции, потом источник, и в конце место назначения. При этом опции из одной буквы можно соединять, например, вместо «-r -v» можно написать просто «-rv».

рекурсивное копирование с выводом информации

Ниже мы рассмотрим несколько примеров копирования с опциями.

  • cp -r folder/ newfolder/
    Рекурсивное копирование каталогов.
  • cp -rv folder/ newfolder/
    Рекурсивное копирование с выводом подробной информации.
  • cp -ri folder/ newfolder/
    Рекурсивное копирование в интерактивном режиме с запросом на перезапись.
  • cp -rn folder/ newfolder/
    Рекурсивное копирование без перезаписи.
  • cp -ru folder/ newfolder/
    Рекурсивное копирование только новых файлов.

Оставить комментарий