Как скопировать linux astra

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

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

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

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

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

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

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

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

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

Другой вариант, который может быть полезен, — это -v . При использовании этой опции команда печатает, что делается:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Драйвер модема для линукс

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

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

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

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

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

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

Выводы

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

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

Источник

Команда cp — копирование файлов в Linux из терминала

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

Знание о команде cp полезны, ведь файловый менеджер может некорректно работать из-за проблем с графической оболочкой. Серверные компьютеры вообще управляются только через консоль. Перемещать файлы с помощью терминала очень удобно, в этом может убедиться каждый пользователь. Скопировать файлы можно как с помощью утилиты cp, так же используя tar и find.

Синтаксис

Рассмотрим синтаксис утилиты.

cp [параметр] [что копировать] [куда купировать]

Как только команда будет активирована, отправляемый файл перенесется в место для приема, при указании на конце файла значка «/» он также будет перенесен, но с новым именем.

  • —attributes-only – переместить не сам файл, а только данные пользователя и флаги доступа;
  • -f —force – вместо старых данных записать новые;
  • -i —interactive – спросить о необходимости переписывать старую информацию;
  • -L – создать копию не ссылок-символов, а того, что находится по этим ссылкам;
  • -n – оставить старые файлы на их месте;
  • -P – игнорировать ссылки-символы;
  • -r – скопировать данные Linux используя рекурсию;
  • -s – ничего не копировать, просто создать ссылки-символы;
  • -u – копировать файл, но при условии, что он уже был изменен;
  • -x – проводить все действия только внутри одной системы файлов;
  • -p – во время копирования сохранить все информацию о файле;
  • -t – команда дает возможность считать файл для приема директорией, и отправлять в него нужный объект;

Примеры

Для первого примера, скопируем файл /root/katalog/dokument в папку, которая называется «newpapka».

cp /root/katalog/dokument /root/newpapka

Cкопируем «dokument» и «file» в каталог «newpapka».

cp /root/katalog/dokument /root/katalog/file /root/newpapka

Часто бывает так, когда копируешь несколько файлов, желательно выводить информацию, что происходит. В этом поможет опция «-v».

cp -v /root/katalog/dokument /root/katalog/file /root/newpapka

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

cp -i /root/katalog/dokument /root/newpapka

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

Данная возможность будет полезна при следующей ситуации: пользователю известно, что в определенном месте для копирования уже содержится тот же файл, но с устаревшей версией, а с помощью функции «-u» можно безболезненно перезаписать старые данные:

Читайте также:  1с консоль кластера linux

cp -u /root/katalog/dokument /root/newpapka

Для копирование папки со всем ее содержимом необходимо использовать параметр -r.

cp -r /root/katalog /root/newpapka

ВАЖНО! Как видно из скриншота, данный способ скопирует всю папку и поместит ее в новую директорию.

Если нужно только сделать копию всех файлов без папки, то опция -r не подойдет.

Можно сделать так:

cp /root/katalog/* /root/newpapka

Как видно из примера выше, команда cp работает со знаками «*» и «?», следующий запрос, займется копированием всех файлов, чье название начинается с new:

cp /root/katalog/new* /root/newpapka

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

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

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

Регулярные выражения

Для выполнения других, более сложных функций, придется использовать вместе с cp такие утилиты find и egrep.

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

Вот пример, в нем проводится копирование файлов, которые содержат цифры от 1 до 5:

find /root -name 4 -exec cp <> /root/newpapka \;

ВАЖНО! Обязательно в конце команды нужно ввести «;», в противном случаи будет ошибка — exec аргумент не задан.

  • /root — каталог где производить поиск.
  • -name — критерии поиска.
  • 1 — что искать, в данном случаи от одного до пяти.
  • -exec — аргумент, который говорит, что нужно запустить команду.
  • <> — подставляет имя каждого файла.

Сделать то же самое можно и не прибегая к find, можно обратиться к утилите ls, выбрать нужные файлы, используя регулярные выражения egrep, затем отправить их под контроль cp, применяя при этом xargs:

ls -1 /root | egrep ‘2’ | xargs cp -t /root/newpapka

Данный способ не отличается особым удобством, однако использовать его можно. При работе с ним начнется копирование файлов из основной директории, чьи имена содержат лишь цифры от 1 до 5.

Копирование при помощи перенаправления вывода

В операционной системе Linux есть специальный символ «>», который означает перенаправление вывода.

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

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

cat file1 > newfile

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

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

С помощью cp так делать можно, однако на помощь придется позвать утилиту tar, чтобы она начала работу следует написать в cp «-p».

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

tar cf — /lfc | ( cd /epl/lfc && tar xvf — )

С помощью данной команды все из папки /lfc отправляется в папку /epl/lfc. Таким способом можно скопировать любую информацию с компьютера, даже если это операционная система.

Читайте также:  Toshiba qosmio g20 120 как установить windows

Теперь почти каждый пользователь знает, как копировать файлы в ОС. С помощью терминала делать это можно быстро, главное – запомнить все нужные команды.

Источник

Перенос Linux на другой компьютер

Вступление

Хочу поделиться собственным опытом переноса системы на другой компьютер, целиком и полностью отличающийся аппаратной конфигурацией.
На самом деле, вариантов перенести систему много. Каждый имеет свой подход. Я же опишу способ, который больше всего подходит для новичков.

Что имеем

Итак, вот конфигурация моего исходного компа, с установленно ОС:
Материнка: Intel S3200shv
Процессор: Intel Core 2 Duo E8400
Память: 8Гб
Raid 1 ёмкостью 300 Гб
ОС: Fedora 12 i686
Будем для краткости называть его «донором».

Конфигурация компа назначния:
Материнка: Intel Desktop Board D845EBG2
Процессор: Celeron 2ГГц
Память: 512Мб
HDD 160 Гб
Это будет «пациент».

Как видите, системы различаются целиком и полностью. В том числе размеры жёстких дисков. Но в этом нет ничего страшного.
На исходной системе мои разделы имели такой вид:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/dm-6 5.0G 2.5G 2.2G 53% /
/dev/dm-1 194M 55M 130M 30% /boot
/dev/dm-5 4.0G 141M 3.7G 4% /tmp
/dev/dm-3 99G 257M 94G 1% /var/db
/dev/dm-7 2.0G 87M 1.8G 5% /var/log
/dev/dm-2 173G 229M 164G 1% /var/www

В кратком виде алгоритм будет таким:
1. Создать разделы у «донора», как Вы хотите.
2. Установить на комп назначения такую же систему, как на исходном компе.
3. Подключить к исходному компу HDD компа назначения
4. Скопировать файлы из разделов «донора» в разделы «пациента».

Многие вместо второго шага правят разделы вручную. Я предлагаю установку, поэтому этот способ как мне кажется, проще и универсальнее. Чтобы Вы не мучились с переустановкой загрузчика и правкой /etc/fstab.

Шаг первый

Я размечал свой HDD с помощью загрузочного диска pmagic. Удобно и наглядно.
Разделы я создавал «один-в-один» как и на исходном компе, только меньше размером, т.к. HDD «пациента» меньше.

Шаг второй

Установка Fedora на подготовленный HDD прошла быстро и без проблем. Правда, сначала не мог запустить её в графическом режиме, т.к. стояла планка только в 256 Мб. Пришлось заменить на 512 и процесс пошёл.

Шаг третий

Для начала советую провести у «донора» небольшую подготовку. Это установить kudzu:
yum install kudzu
На всякий случай с помощью dd создать бэкап исходной системы. Мало ли, вдруг что-то напутаете при копировании файлов из-за невнимательности?
Далее, выключаем оба компа, подключаем к «донору» винчестер HDD, на который мы только что установили такую же систему. Загружаемся с LiveCD.

Шаг четвёртый

Заходим в консоль, под рутом создаём 2 директории: /mnt/donor/ и /mnt/pacient/. Внутри каждой директории я создал поддиректории, и туда смонтировал разделы HDD «донора» в /mnt/donor/, а разделы HDD «пациента» в /mnt/pacient/.
Теперь можно начать копировать файлы. Но прежде, очень важное замечание! Есть некоторые исключения, которые не нужно копировать от «донора»! Создадим где-нибудь файл exclude_list, содержащий эти исключения:
/etc/fstab
/boot/grub/grub.conf
/proc
/sys
/dev
/mnt
/media

А теперь копируем файлы с пом. команды:
rsync -xrlptgoEv —progress —exclude-from=/путь/до/exclude_list /путь/откуда/копируем/ /путь/куда/копируем/
Аналогично выполняем вышеприведённую команду для всех смонтированных разделов. Только обязательно в конце «/путь/откуда/копируем/» указывайте слеш.
Перезагружаемся.

У меня после перезагрузки система стартовала без проблем. В логах ни на что не ругалась. Единственное, что пришлось сделать, это подредактировать файл /etc/sysconfig/network-scripts/ifcfg-eth0, т.к. скопировался MAC-адрес с компа «донора». Ну и автозагрузка программ исправил с помощью ntsysv.
Было бы классно, если бы с виндой можно было проделать такой же фокус.

Источник

Оцените статью