Как сделать копию файла в линукс
Для пользователей 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
Исходный файл сохранился, кроме того у нас имеется его копия.
А если в качестве целевого файла указать существующий файл?
Тогда этот файл будет перезаписан.
Чтобы этого не произошло удобно использовать опцию -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_link.txt имеют одинаковые атрибуты, потому что ссылаются на один один и тот же физический файл.
Существует и другая форма записи команды ln , выглядит так:
ln файл каталог
С помощью нее создается жесткая ссылка в указанном существующем каталоге:
Как видно система создала ссылку с таким же именем.
Важно знать, что в Linux файлы не привязываются к своим именам. У каждого файла есть индексный дескриптор - описание файла, которое содержит всю информацию о файле:
- тип файла
- время создания и модификации
- владелец файла
- права доступа
- размер файла
- идентификатор файла, то есть знает в какой области памяти хранится файл
Чтобы обратиться к файлу необходимо указать его идентификатор - метку. Но запоминать все метки нереально, поэтому и используются жесткие ссылки или имена.
Имя файла привязывается к идентификатору определенного файла и таким образом позволяет обращаться к файлу только по имени.
А как узнать идентификатор файла?
С помощью команды ls -i либо ls --inod
Цифры перед каждым файлом указывают на индексный дескриптор.
Заметь, что ссылки, указывающие на один и тот же файл имеют одинаковые идентификатор и прочие атрибуты файла:
У жестких ссылок есть некоторые недостатки:
- нельзя создать ссылку на несуществующий файл
- нельзя создать ссылку на каталог
- нельзя создать ссылку на файл, который находится в другой файловой системе, например, на флэшке или в другом сетевом диске.
А как обойти все эти ограничения?
Легко. Для этого существуют символьные ссылки. Символьная ссылка это просто файл, который содержит путь к указанному файлу или каталогу. Создается она так:
ln -s файл название_ссылки либо ln --symbolic файл название_ссылки.
Ключевым здесь является опция -s. Создадим ссылку на файл test.txt:
Знак -> означает, что данный файл является символьной ссылкой. За знаком следует файл, на который ссылается ссылка.
Чтобы узнать полный путь ссылки воспользуемся командой realpath
А с каким идентификатором будет связана данная ссылка?
Как видно из рисунка индексный дескриптор и прочие атрибуты файлов у них разные. Таким образом, данный тип ссылок даже не связан с индексным дескриптором файла, на который он ссылается.
Копирование файлов и каталогов является одной из наиболее распространенных задач, которые вы выполняете при работе в командной строке. В 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 и так далее. Но у ноутбуков есть своя специфика. Многие современные лептопы по своим характеристикам сравнимы с компьютерами, а иногда они превосходят модели.
Читайте также: