Как сделать копию файла в линукс

Обновлено: 07.07.2024

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

В этой статье мы продемонстрируем 16 полезных примеров команд cp специально для новичков в Linux. Ниже приведен основной синтаксис команды cp.

Скопируйте файл в другой файл

Скопируйте файл (ы) в другой каталог или папку

Давайте перейдем к практическим примерам команды cp,

Пример: 1) Скопируйте файл в целевой каталог

Предположим, мы хотим скопировать файл /etc/passwd в каталог /mnt/backup для некоторой цели резервного копирования, поэтому выполните команду ниже cp,

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

Пример: 2 Одновременное копирование нескольких файлов

Предположим, мы хотим скопировать несколько файлов (/etc/passwd, /etc/group и /etc/shadow) одновременно в целевой каталог (/mnt/backup).

Пример: 3) Интерактивное копирование файлов (-i)

В приведенной выше команде нужно вручную ввести ‘y’, чтобы разрешить операцию копирования.

Пример: 4) Подробный вывод во время команды копирования (-v)

Пример: 5) Копирование каталога или папки (-r или -R)

В приведенной выше команде параметр -r рекурсивно копирует файлы и каталог.

Теперь проверьте содержимое каталога infoit в целевом месте,

Пример: 6) Архивировать файлы и каталог во время копирования (-a)

При копировании каталога с помощью команды cp мы обычно используем параметр -r или -R, но вместо параметра -r мы можем использовать ‘-a’, который будет архивировать файлы и каталог во время копирования, пример показан ниже,

Пример: 7) Копировать, только если исходный файл новее, чем целевой (-u)

Пример: 8) Не перезаписывать существующий файл при копировании (-n)

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

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

Пример: 9) Создание символических ссылок с помощью команды (-ов) cp

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

Пример: 10) Создание жесткой ссылки с помощью команды cp (-l)

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

Как мы знаем из жесткой ссылки, исходный и связанный файл будут иметь одинаковые номера inode, давайте проверим это, используя следующие команды:

Пример: 11) Копирование атрибутов из источника в место назначения (–attributes-only)

В приведенной выше команде мы скопировали файл distribution.txt из домашнего каталога infoit в папку / mnt / backup, если вы заметили, копируются только атрибуты, а содержимое пропускается. Размер distribution.txt в папке / mn / backup равен нулю байт.

Пример: 12) Создание резервной копии существующего целевого файла при копировании (–backup)

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

  • none, off – никогда не делать резервные копии
  • numbered, t – делать нумерованные резервные копии
  • existing, nil – нумеруются, если существуют пронумерованные резервные копии, в противном случае просто
  • simple, never – всегда делайте простые резервные копии

Пример: 13) Сохранить режим, право собственности и временные метки при копировании (-p)

Если вы хотите сохранить атрибуты файла, такие как режим, владение и временные метки при копировании, используйте параметр -p в команде cp, пример показан ниже,

Пример: 14) Не переходите по символическим ссылкам в исходном коде при копировании (-P)

Если вы не хотите следовать символическим ссылкам источника во время копирования, используйте параметр -P в команде cp, пример показан ниже

Примечание. По умолчанию команда cp следит за символическими ссылками в исходном коде при копировании.

Пример: 15) Скопируйте файлы и каталог принудительно, используя параметр -f

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

Пример: 16) Скопируйте разреженные файлы, используя параметр sparse в команде cp

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

При использовании параметра sparse в команде cp можно использовать разные параметры,

  • sparse=auto
  • sparse-always
  • sparse=never

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

Для выполнения данной операции используется команда cp (от англ. copy). Формат использования выглядит так:

cp файл_источник целевой_файл

Для примера создадим копию файла test.txt под названием test_copy.txt

Создание копии файла test.txt


Исходный файл сохранился, кроме того у нас имеется его копия.

А если в качестве целевого файла указать существующий файл?

Тогда этот файл будет перезаписан.

Чтобы этого не произошло удобно использовать опцию -i ( --interactive ). Работает также, как и с командой mv - запрашивает у пользователя подтверждение действия.

А можно копировать файл в каталог?

Да, для этого в качестве целевого файла укажи сам каталог.

Например, скопируем файл test.txt в каталог home/student/video/:

cp test.txt home/student/video или просто cp test.txt video/

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

А можно этой командой копировать каталоги со всем содержимым?

Да, но для этого используется специальная опция -R ( --recursive ):

cp -R каталог_источник целевой_каталог

Кстати, у скопированной копии права доступа и прочие атрибуты файла определяются в соответствии с атрибутами самого пользователя, скопировавшего файл. Чтобы сохранить первоначальные атрибуты необходимо использовать опцию -p ( --preserve ).

С командой ср можно использовать следующие опции:

-v ( --verbose )

Как они работают мы уже знаем.

Жесткие и символьные ссылки

Как ты уже знаешь в системе Linux существуют 2 типа ссылок: жесткие и символьные. Поговорим сначала о жестких ссылках.

Содержимое любого файла хранится на определенных секторах запоминающего устройства (жесткого диска, USB флэш, CD). Для обращения к этим областям памяти и используются жесткие ссылки, которые и называются именами файла.

То есть жесткая ссылка и имя файла это одно и то же?

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

То есть можно создать 2 и более имени одного и того же файла?

Совершенно верно. Для этого существует команда ln (сокращенно от link - связывать):

ln файл жесткая_ссылка

Например, создадим ссылку для файла student.txt:

Создание жесткой ссылки для файла student.txt


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

Существует и другая форма записи команды ln , выглядит так:

ln файл каталог

С помощью нее создается жесткая ссылка в указанном существующем каталоге:

Создание ссылки в каталоге

Как видно система создала ссылку с таким же именем.

Важно знать, что в Linux файлы не привязываются к своим именам. У каждого файла есть индексный дескриптор - описание файла, которое содержит всю информацию о файле:

  • тип файла
  • время создания и модификации
  • владелец файла
  • права доступа
  • размер файла
  • идентификатор файла, то есть знает в какой области памяти хранится файл

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

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

А как узнать идентификатор файла?

С помощью команды ls -i либо ls --inod

Отображение идентификатора файла

Цифры перед каждым файлом указывают на индексный дескриптор.

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

Сравнение атрибутов файлов

У жестких ссылок есть некоторые недостатки:

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

А как обойти все эти ограничения?

Легко. Для этого существуют символьные ссылки. Символьная ссылка это просто файл, который содержит путь к указанному файлу или каталогу. Создается она так:

ln -s файл название_ссылки либо ln --symbolic файл название_ссылки.

Ключевым здесь является опция -s. Создадим ссылку на файл test.txt:

Создание символьной ссылки

Знак -> означает, что данный файл является символьной ссылкой. За знаком следует файл, на который ссылается ссылка.

Чтобы узнать полный путь ссылки воспользуемся командой realpath

Отображение файла

А с каким идентификатором будет связана данная ссылка?

Идентфикатор файла

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

Как копировать файлы и каталоги в Linux

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

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


Копирование файлов с помощью cp команды

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

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


Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте -i опцию.


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


Еще одна полезная опция -v . При использовании этой опции команда печатает, что делается:


Скопируйте файл в каталог

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


В следующем примере мы копируем файл file.txt в /backup каталог:


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

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


Команда выше скопирует файл в указанный каталог как new_file.txt .


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

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


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

Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все .jpg файлы из текущего каталога в /backup каталог, вы должны использовать:


Копирование каталогов с помощью cp команды

Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r . В следующем примере мы копируем каталог Pictures в Pictures_backup :


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

Если целевой каталог уже существует, сам исходный каталог и все его содержимое будут скопированы в целевой каталог. Чтобы скопировать только файлы и подкаталоги, но не целевые каталоги, используйте -T параметр:


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

Копирование файлов и каталогов с помощью rsync команды

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

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

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


Если целевой файл существует, он rsync будет перезаписан.

Эту же команду можно использовать для копирования каталога:


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

Чтобы узнать больше о rsync проверке следующих статей:


Вывод

В этом руководстве мы показали вам , как копировать файлы и каталоги в Linux и Unix системах , основанных на использовании cp и rsync утилиты.


Копирование и вставка файлов – это одна из самых простых вещей, которые вы можете делать на компьютере.

В Linux у вас есть несколько вариантов выполнения этой работы.

В командной строке все более просто, что дает вам больше контроля, а в некоторых случаях значительно упрощает.


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

cp является сокращением copy.

Синтаксис тоже прост.

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

Скопируйте папку и ее содержимое


Чтобы скопировать папку и ее содержимое, вам нужно указать команде cp рекурсивное копирование.

Это достаточно просто => с флагом -r.

Весь остальной ваш синтаксис точно такой же.

Флаг -r служит для указания cp, что он работает с каталогом и должен копировать его содержимое.

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


Вы также можете скопировать несколько файлов. Командная строка Linux позволяет указывать сразу несколько элементов в квадратных скобках <>.

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

Все три файла разных типов будут скопированы в каталог Documents.

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


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

Звездочка / подстановочный знак указывает командной строке Linux принимать абсолютно все файлы в этом месте.

Таким образом, если вы скажете Linux, чтобы он копировал * .jpg, он скопирует все файлы JPG, независимо от имени или того, что находится перед частью названия файла .jpg.

Если вы хотите использовать несколько типов файлов, например JPG и PNG, вы можете использовать скобки

Переместить файл или папку

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

Синтаксис очень похож на CP.

Однако есть одно существенное отличие. Вам не нужен флаг -r для перемещения всей папки.

Вы готовы начать копирование и перемещение файлов из командной строки.

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

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

Со временем, работая с Linux, вы привыкнете выбирать, что для вас лучше.

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


Вопрос: Как отладить/найти изменения или неудачные команды во время процесса загрузки? 1. В процессе загрузки, при появлении загрузочного меню grub нажмите “e” для редактирования grub, затем прокрутите вниз, пока не увидите запись boot: echo "Loading Linux. linux16 /vmlinuz-XXX root=XXXro crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet LANG=en_US.UTF-8 2. В строке с “linux” удалите следующие записи, если они.

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

Когда вы посещаете официальный сайт LXLE, его мантра – “Оживите старый ПК” – смело бросается в глаза. И это именно то, что LXLE стремится сделать. Основанный на релизе Ubuntu/Lubuntu LTS, LXLE – это легкий дистрибутив Linux, дружественный к ресурсам и идеально подходящий для старых ПК или систем с низкими системными характеристиками. Фактически, LXLE занимает видное.

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

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