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

Обновлено: 21.11.2024

cp означает копию. Эта команда используется для копирования файлов, групп файлов или каталогов. Он создает точный образ файла на диске с другим именем файла. Команде cp необходимо указать как минимум два имени файла в аргументах.

Синтаксис:

    Два имени файла: если команда содержит два имени файла, то она копирует содержимое 1-го файла во 2-й файл. Если 2-й файл не существует, то сначала он создает его, и содержимое копируется в него. Но если он существовал, то он просто перезаписывается без предупреждения. Поэтому будьте осторожны при выборе имени файла назначения.

Предположим, что существует каталог с именем geeksforgeeks, содержащий текстовый файл a.txt, b.txt и имя каталога new, в который мы собираемся скопировать все файлы.
Пример:< /p>

Параметры:

Существует много опций команды cp, здесь мы обсудим некоторые из полезных опций:
Предположим, что каталог с именем geeksforgeeks содержит два файла с некоторым содержимым, названным как a.txt и b.txt. Этот сценарий полезен для понимания следующих параметров.

<р>1. -i (интерактивный): я означает интерактивное копирование. С этой опцией система сначала предупреждает пользователя перед перезаписью целевого файла. cp запрашивает ответ, если вы нажмете y, он перезапишет файл, а с любым другим параметром оставить его нескопированным.

<р>2. -b(backup): с этой опцией команда cp создает резервную копию целевого файла в той же папке с другим именем и в другом формате.

<р>3. -f(force): если система не может открыть целевой файл для операции записи, потому что у пользователя нет разрешения на запись для этого файла, то при использовании параметра -f с командой cp целевой файл сначала удаляется, а затем копируется содержимое. выполняется от исходного файла к целевому.

<р>4. -r или -R: копирование структуры каталогов. С этой опцией команда cp показывает свое рекурсивное поведение, рекурсивно копируя всю структуру каталогов.
Предположим, мы хотим скопировать каталог geeksforgeeks, содержащий много файлов, каталогов в каталог gfg (не существует).

<р>5. -p(сохранить): с опцией -p cp сохраняет следующие характеристики каждого исходного файла в соответствующем целевом файле: время последней модификации данных и время последнего доступа, право собственности (только если у него есть права на выполнение this) и биты прав доступа к файлам.
Примечание. Для сохранения характеристик вы должны быть пользователем root системы, иначе характеристики изменятся.

Как мы видим выше, файлы .txt и c.txt (созданные путем копирования) имеют одинаковые характеристики.

Примеры:

Копирование с использованием подстановочного знака *: подстановочный знак в виде звезды представляет что угодно, т. е. все файлы и каталоги. Предположим, у нас есть много текстовых документов в каталоге, и мы хотим скопировать его в другой каталог, это займет много времени, если мы скопируем файлы 1 на 1, или команда станет слишком длинной, если указать все эти имена файлов в качестве аргумента, но с помощью подстановочного знака * становится простым.


Ссылки:
Википедия

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

Примечание. Эти команды Linux можно запускать только из окна терминала. Если ваша версия Linux загружается с графическим интерфейсом рабочего стола, запустите окно терминала, нажав CTRL-ALT-F2 или CTRL-ALT-T.

Использование команды cp для копирования файлов и каталогов в Linux

Команда cp — это основной метод копирования файлов и каталогов в Linux. Практически все дистрибутивы Linux могут использовать cp. Основной формат команды:

Эта команда Linux создает копию файла my_file.txt и переименовывает новый файл в my_file2.txt.

По умолчанию команда cp запускается в том же каталоге, в котором вы работаете. Однако один и тот же файл не может существовать дважды в одном и том же каталоге. Вам нужно будет изменить имя целевого файла, чтобы скопировать его в то же место. Некоторые пользователи добавляют _old, некоторые добавляют номер, а некоторые даже меняют трехбуквенное расширение (например, .bak вместо .txt).

Возможно, вы не получите предупреждение до того, как Linux перезапишет ваш файл — будьте осторожны или см. ниже параметр –i.

Дополнительные параметры

В сочетании с командой cp можно использовать дополнительные параметры:

  • –v verbose: показывает ход выполнения нескольких скопированных файлов
  • –ppreserve: сохраняет те же атрибуты, такие как дата создания и права доступа к файлам.
  • –f force: принудительно скопировать, предварительно удалив существующий файл
  • –i интерактивный: запрашивает подтверждение, настоятельно рекомендуется
  • –Рекурсивный: копирование всех файлов и подпапок в каталоге
  • –u update: копировать, только если источник новее, чем место назначения

Примечание. Параметр -p (сохранить) заставляет систему сохранять следующие атрибуты исходного файла: время модификации, время доступа, идентификатор пользователя (UID), идентификатор группы (GID), флаги файла, режим файла, списки контроля доступа. (ACL) и расширенные атрибуты (EA).

Как скопировать файл в другой каталог в Linux

Чтобы скопировать файл из каталога, в котором вы работаете, в другое место, используйте команду:

Вам не нужно переименовывать файл, если в целевом каталоге уже нет файла с таким же именем.

Чтобы указать путь к исходному файлу:

Это позволяет копировать без изменения каталогов. Команда cp создаст каталог /new_directory, если он не существует.

Чтобы переименовать и скопировать файл по другому пути:

Этот параметр полезен для создания резервных копий файлов конфигурации или для копирования данных на устройство хранения.

Примечание. Узнайте, как перемещать каталоги в Linux.

Копировать несколько файлов из одного каталога в другой в Linux

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

Перечислите все файлы, которые нужно скопировать, перед целевым каталогом:

В этом примере создаются копии всех трех файлов в папке /new_directory.

Используйте подстановочный знак, чтобы указать все файлы, которые имеют общую строку символов:

Это позволит найти все файлы с расширением .jpg в каталоге /pictures и скопировать их в папку /new_directory.

Чтобы скопировать всю папку, ее вложенные папки и файлы, используйте параметр –R:

–R означает рекурсивный, что означает «все в этом месте». Это скопирует все файлы, а также все каталоги в папку /new_directory.

Копировать с помощью команды rsync

Команда rsync в Linux используется для синхронизации или передачи данных между двумя местоположениями. Использование похоже на cp , но следует отметить несколько ключевых отличий.

Чтобы скопировать один файл, введите в терминал следующее:

  • Опция –a означает все и включена в команды rsync — это сохраняет подкаталоги, символические ссылки и другие метаданные.
  • Замените файл my_file.txt в рабочем каталоге.
  • Замените /new_directory/ на место назначения.
  • Использование my_file_backup.txt в качестве цели указывает, что файл будет переименован во время копирования.

Чтобы скопировать каталог с помощью rsync, введите следующее:

При этом содержимое каталога /etc/docker/ копируется в /home/backup/docker/. Обязательно сохраняйте косые черты. Если не указывать косую черту в исходном каталоге, содержимое будет скопировано в подкаталог.

Чтобы избежать копирования файлов, ознакомьтесь с нашим руководством о том, как исключить файлы и каталоги при передаче данных с помощью команды rsync.

Другие параметры

Команда ls является удобным партнером команды cp в Linux.

Чтобы просмотреть содержимое каталога, введите команду:

В приведенном выше примере отображаются все файлы в каталоге /. Используйте эту команду после копирования, чтобы убедиться, что файлы были скопированы успешно.

Чтобы изменить каталог, используйте cd и имя каталога. Например:

Командная строка изменится, чтобы показать, что вы изменили каталоги.

Теперь вы понимаете, как копировать файлы в Linux. Команда cp — это универсальный и мощный инструмент для управления файлами и их резервного копирования.

Мохаммед Абубакар

Мохаммед Абубакар
Писатель

Абубакар — независимый автор How-to Geek. Хотя он имеет степень в области компьютерных наук, он выбрал писательскую карьеру, чтобы помогать людям с технологиями. У него есть двухлетний опыт написания статей о бытовой электронике, Android, Linux, Windows и программном обеспечении с открытым исходным кодом на таких сайтах, как Fossbytes. Подробнее.

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

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

cp и rsync — две самые популярные команды, которые можно использовать для быстрого копирования файлов и каталогов в Linux. Мы познакомим вас с ними обоими.

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

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

Рассмотрите синтаксис cp в его простейшей форме.

Пример его использования будет выглядеть следующим образом.

Приведенная выше команда скопирует текстовый файл Test1.txt в каталог copy_Test1_here/.

Если у вас есть несколько файлов, которые нужно скопировать в один каталог, просто перечислите каждый файл с пробелом между ними.

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

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

Учитывая наличие файла Test1.txt, который необходимо скопировать в каталог copy_Test1_here как Test2.txt:

Хотите сохранить его в том же каталоге? Вы можете скопировать файл и переименовать его следующим образом:

Хотите скопировать весь каталог? Предположим, что dir_1 и dir_2 — это два каталога в /Desktop. Чтобы скопировать dir_1 в dir_2 с помощью команды cp, вам нужно ввести вот что.

Здесь параметр -a означает «архив» и используется, чтобы сообщить компьютеру, что мы имеем дело с каталогами. Команда копирует каталог dir_1 в dir_2 .

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

Например, предположим, что есть файл Test_Example, который нужно скопировать в dir_1 . Чтобы отобразить результат операции копирования, используйте параметр -v.

Вывод будет выглядеть следующим образом:

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

Команда rsync означает «Удаленная синхронизация» и в основном используется для передачи файлов и каталогов между компьютерами в одной сети. Однако он также позволяет копировать файлы и каталоги на один и тот же компьютер. Вот несколько примеров.

Учитывая, что у нас есть два каталога dir_1 , dir_2 и файл Test.txt в dir_1 . Если мы хотим скопировать файл в dir_2 , вот как будет выглядеть команда rsync, чтобы сделать то же самое.

Здесь -v означает "подробный". Это приводит к отображению сведений о передаче файла, подобно опции -v в команде cp. Это позволяет подтвердить, что копирование прошло успешно. Вот что получится в нашем случае:

Вы также можете копировать сразу несколько файлов из одного каталога в другой. Предположим, что вы находитесь в /Desktop, в котором есть два каталога dir_1 и dir_2. В dir_1 есть четыре файла test1, test2, test3 и test4, и вы хотите скопировать их в dir_2. Вот как это можно сделать с помощью rsync :

Приведенная выше команда скопирует файлы test1 , test2 , test3 и test4 в каталог dir_2 .

Чтобы скопировать один каталог в другой, мы должны использовать параметр -a. Вот пример того, как копировать каталоги с помощью Rsync.

Если вы новичок в Linux и команды кажутся сложными для понимания, не торопитесь и сначала ознакомьтесь с основными командами Linux. Вы также можете многое узнать о командах, используя команду man.

Помимо rsync и cp, команда install также позволяет копировать файлы в Linux.

  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
  • › Как восстановить метки панели задач в Windows 11
  • › Почему прозрачные чехлы для телефонов желтеют?
  • › Как установить Google Play Маркет в Windows 11
  • › Что означает XD и как вы его используете?
  • › Худшее, что есть в телефонах Samsung, — это программное обеспечение Samsung.

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

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

Копирование файла, папки или каталога — простая и основная задача в операционной системе Linux. Команды переименования, удаления или копирования используются в качестве повседневных операций при работе с интерфейсом командной строки.

Несмотря на то, что для копирования файлов существует несколько команд, команды «cp» и «rsync» являются широко используемыми простейшими подходами.

Как копировать файлы с помощью команды «cp» в Linux:

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

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

Давайте рассмотрим пример, чтобы лучше понять инструмент команды «cp».

В домашнем каталоге создайте папку «temp» с текстовым файлом с именем «text_file1.txt» и добавьте в нее произвольное содержимое.

Скопируйте файл с тем же именем:

Чтобы скопировать каталог с файлом text_file1.txt с тем же именем, откройте терминал и введите указанную команду «cp» с правильным путем.

Получить путь к папке, щелкнув файл правой кнопкой мыши и перейти к параметру «Свойства» (это самый простой способ получить ссылку на путь).

Откроется диалоговое окно с полным путем к текстовому файлу:

Используйте этот путь с командой «cp» для копирования файла:

Эта команда скопирует файл «text_file1.txt» в папку «temp2».

Чтобы проверить это, введите команду «ls» в терминале:

Скопируйте файл с другим именем:

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

Проверьте это с помощью команды «ls»:

Скопировать несколько файлов с помощью команды «cp»:

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

$ cd/home/wardah/temp

$ cp text_file1.txt text_file2.txt text_file3.txt /home/wardah/temp2

Выполните указанную команду, чтобы проверить, успешно ли скопированы файлы:

Вышеупомянутые сценарии показывают, как скопировать один или выбранный файл в каталог. Теперь используйте подстановочный знак (*), чтобы скопировать имеющиеся файлы из одного каталога в любой другой конкретный каталог.

Проверим, как это работает:

Выполните команду «ls», чтобы проверить, сколько файлов существует во временном каталоге:

Вместо того, чтобы указывать все имена файлов в терминале, используйте подстановочный знак (*) с путем к каталогу, чтобы скопировать все файлы в место назначения:

Теперь снова запустите команду «ls», чтобы проверить, все ли файлы скопированы в каталог «temp2»:

Как копировать файлы с помощью команды «rsync» в Linux:

Команда rsync — еще один универсальный инструмент Linux для синхронизации и копирования файлов и каталогов как локально, так и удаленно.

Синтаксис команды «rsync» для копирования файлов:

Это встроенный инструмент во многих дистрибутивах Linux. Однако, если в вашей системе его нет, установите его, выполнив следующую команду:

Чтобы скопировать файл из одного места в другое, выполните следующую команду:

Для подтверждения введите:

Чтобы скопировать все файлы каталога в другое место, введите следующую команду:

(«-a» с командой «rsync» используется для рекурсивного копирования каталогов)

Вот две концепции:

Если вы добавите косую черту (/) в конце пути, содержимое исходного каталога будет скопировано в целевой каталог, как показано на рисунке:

Но если вы его не добавите, он скопирует исходный каталог в целевой каталог, например:

Приведенная выше команда скопирует каталог «dir1» в каталог «dir2».

Вывод:

Копирование файла или каталога — это основная команда, с которой можно работать. Его можно использовать несколько раз при использовании операционной системы Linux.

В этом руководстве рассмотрены два простейших подхода: команда «cp» и команда «rsync». С помощью этих команд мы научились копировать один файл, несколько файлов и даже копировать один каталог в другой.

Об авторе

Варда Батул

Я дипломированный инженер-программист и целеустремленный писатель Linux. Я также люблю читать последние книги по Linux. Кроме того, в свободное время я люблю читать книги по личностному развитию.

Копирование файлов и каталогов в терминале Linux действительно эффективно и просто, если вы знаете, как это делать. Это полезно, когда нам нужно управлять нашими файлами и каталогами без использования графического интерфейса, например, в сценарии BASH. Мы можем сделать это независимо от того, находимся ли мы за своим рабочим столом или подключаемся к машине удаленно через SSH.

В этом руководстве мы рассмотрим команду cp, которая копирует файлы и каталоги. Мы рассмотрим некоторые аргументы, которые можно добавить, чтобы получить максимальную отдачу от этой команды.

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

Все команды в этом руководстве будут работать на большинстве компьютеров Linux. Мы использовали установку Ubuntu 20.04, но вы можете запустить это руководство на Raspberry Pi. Все инструкции выполняются через Терминал. На большинстве компьютеров с Linux можно открыть окно терминала, нажав ctrl, alt и t.

Как скопировать один файл в Linux

Давайте начнем с простого копирования одного файла. Синтаксис команды имеет следующую структуру.

<р>1. Создайте новый файл с именем test1.txt.

<р>2. Перечислите содержимое каталога, чтобы проверить, был ли создан файл. Теперь вы должны увидеть файл test1.txt.

<р>3. Скопируйте файл test1.txt и переименуйте его в test2.txt. Это копирует элемент в тот же каталог, что и исходный, но в новый файл.

<р>4. Перечислите содержимое каталога, чтобы убедиться, что файл был скопирован и переименован. Вы должны увидеть, что в списке указан исходный файл test1.txt и скопированный файл test2.txt.

Как скопировать каталог в Linux

Давайте рассмотрим аналогичный пример, чтобы показать, что cp можно использовать для копирования каталога с помощью аргумента -r. Хотя в качестве примера мы использовали пустой каталог, любое содержимое каталога также будет скопировано в новый каталог с использованием этого аргумента.

<р>1. Создайте пустой каталог в своем домашнем каталоге.

<р>2. Скопируйте и переименуйте новый каталог.

<р>3. Перечислите содержимое каталога, чтобы убедиться, что скопированный каталог создан. Вы должны увидеть каталоги test_directory и test_directory_2 в списке.

Как скопировать файлы в другое место в Linux

Для следующего примера рассмотрим копирование файла в другое место.

<р>1. Создайте пустой каталог в своем домашнем каталоге.

<р>2. Создайте тестовый файл в своем домашнем каталоге.

<р>3.Скопируйте тестовый файл из домашнего каталога в тестовый каталог. При этом test1.txt копируется из домашнего каталога в test_directory.

<р>4. Убедитесь, что файл скопирован правильно, изменив каталог на test_directory и выведя список содержимого.

Как копировать файлы в каталоги и из них при их переименовании

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

<р>1. Создайте 2 пустых каталога. Из домашнего каталога выполните следующую команду, чтобы создать два новых каталога.

<р>2. Перейдите внутрь folder1 и создайте тестовый файл с именем test1.txt.

<р>3. Вернитесь в домашний каталог.

<р>4. Скопируйте и переименуйте тестовый файл из домашнего каталога. Мы можем предоставить команде cp имя и расположение целевого файла для копирования, а также место для копирования файла, попутно переименовав его в test2.txt.

<р>5. Убедитесь, что файл был скопирован правильно, изменив каталог на folder2 и перечислив содержимое. Используйте cd для смены каталога и ls для проверки правильности копирования файла. Вы должны увидеть test2.txt в списке внутри folder2.

Как скопировать файл в родительский каталог

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

<р>1. Создайте тестовый каталог с помощью mkdir.

<р>2. Перейдите в test_directory.

<р>3. Создайте тестовый файл внутри test_directory.

<р>4. Скопируйте test1.txt в родительский каталог. Здесь мы просто добавляем .. к команде cp, чтобы создать копию test1.txt в родительском каталоге текущего местоположения.

<р>5. Перейдите в родительский каталог и проверьте, был ли скопирован файл. Вы должны увидеть, что test1.txt теперь указан в этом месте.

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

Читайте также: