Копирование файлов в Linux
Обновлено: 21.11.2024
cp означает копию. Эта команда используется для копирования файлов, групп файлов или каталогов. Он создает точный образ файла на диске с другим именем файла. Команде cp необходимо указать как минимум два имени файла в аргументах.
Синтаксис:
-
Два имени файла: если команда содержит два имени файла, то она копирует содержимое 1-го файла во 2-й файл. Если 2-й файл не существует, то сначала он создает его, и содержимое копируется в него. Но если он существовал, то он просто перезаписывается без предупреждения. Поэтому будьте осторожны при выборе имени файла назначения.
Предположим, что существует каталог с именем geeksforgeeks, содержащий текстовый файл a.txt, b.txt и имя каталога new, в который мы собираемся скопировать все файлы.
Пример:< /p>
Параметры:
Существует много опций команды cp, здесь мы обсудим некоторые из полезных опций:
Предположим, что каталог с именем geeksforgeeks содержит два файла с некоторым содержимым, названным как a.txt и b.txt. Этот сценарий полезен для понимания следующих параметров.
Предположим, мы хотим скопировать каталог 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, чем с помощью инструментов с графическим интерфейсом.
Читайте также: