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

1 способы копирования файлов и каталогов

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

$ cd ; touch index. html

$ mkdiг /tmp/html

$ ср – i index. html /tmp/html/

$ ср – il index. html /tmp //html

$ mkdir /tmp/back

$ cp – a /tmp /html /mp/back/

$ cp – R /tmp /html /tmp/back/

В приведенных примерах продемонстрированы способы копирования файлов. В первом примере использования команды ср, если файл i ndex. html уже существует в папке /tmp/html, перед перезаписью поверх него нового файла отобразится запрос на подтверждение этого действия. В следующем примере файл index. html является объектом жесткой ссылки, имеющей то же имя и хранящейся в каталоге /tmp/html. В данном случае, поскольку обе жесткие ссылки указывают на один и тот же файл, редактирование файла через любую ссылку повлечет за собой изменение содержимого оригинального файла, где бы он ни находился (ссылка может работать только в том случае, если каталог / tmp/html и ваш основной каталог находятся в одной и той же файловой системе).

Команда ср – а копирует все файлы из каталога /tmp/html, сохраняя все настройки прав собственности и доступа. Если, например, файл /tmp/back будет представлен запоминающим USB-устройством, то с помощью этой команды можно будет записать содержимое вашего интернет-сервера на данное запоминающее устройство. Параметр – R осуществляет рекурсивное копирование структуры каталога и назначает в качестве владельца каталога текущего пользователя, изменяя текущие отметки даты и времени.

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

$ dd 1f-/dev/zero of-/tmp/mynullfile count-1

1+0 records in 1+0 records out

512 bytes (512 B) copied. 0.000308544 s. 1.7 MB/s

Файл /dev/zero является специальным файлом, генерирующим нулевые символы. В предыдущем примере команда dd использовала файл /dev/zero в качестве файла входящих данных и выводила данные в файл /tmp/mynullfile. Единицей измерения здесь является количество блоков. По умолчанию размер одного блока составляет 512 байт. Таким образом, в результате выполнения данной команды получился файл размером 512 байт, содержащий только нули. Для просмотра содержимого файла можно воспользоваться командой less или vi, однако лучшим приложением для просмотра файла в данном случае будет команда od:

$ od – vt xl /tmp/mynullfile Просматривает восьмеричный дамп файла

Вот еще один пример использования команды dd:

$ dd if=/dev/zero oWtmp/mynullfile count»10 bs=2

10+0 records in 10+0 records out

20 bytes (20 B) copied. 0.000595714 s. 33.6 kB/s

На этот раз размер блока был установлен равным 2 байтам, а скопировано было 10 блоков (20 байт). Следующая командная строка копирует первый раздел основного жесткого IDE-диска на второй раздел подчиненного жесткого IDE-диска (прежде чем приступить к выполнению подобной операции, выполните резервное копирование данных):

$ sudo dd if-/dev/hdal of-/dev/hdb2

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

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

$ sudo umount /dev/hdal

$ sudo dd if=/dev/hdal | gzip > bootpart. gz

Следующая команда копирует файл-образ ISO с компакт-диска или DVD на USB-носитель (предполагается, что носитель отображен как /dev/sdbl):

$ sudo dd if=whatever. iso of=/dev/sdbl

Стоит отметить, что данная команда создает бинарную копию байтов файла, что, возможно, не соответствует вашим целям.

В следующем примере главная загрузочная запись копируется из основного жесткого диска IDE в файл mymbrf i 1 е:

$ dd if=/dev/hda of=mymbrfile bs=512 count=l

Если вам необходимо создать копию образа ISO, записанного на компакт-диск или DVD, вставьте диск в CD/DVD-привод и выполните следующую команду (необходимо, чтобы файл /dev/cdrom соответствовал вашему CD-приводу):

$ dd itVdev/cdrom of-whatever. iso

Помимо файлов устройств /dev/cdrom, Ubuntu создает файлы устройств /dev/cdrw и /dev/dvd.

Изменение атрибутов файла

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

В файловых системах ext2 и ext3 файлы обладают специальными атрибутами, которые могут использоваться по выбору. Команда 1 sattr позволяет просмотреть эти атрибуты. Большинство атрибутов являются скрытыми и не назначаются по умолчанию. Ниже приведен пример использования команды 1 sattr для просмотра некоторых атрибутов файлов:

$ 1sattr /etc/host

————_ /etc/host. conf

————1 /etc/hosts

————- /etc/host. allow

————- /etc/host. deny

$ 1sattr – aR /tmp/ | less Рекурсивно отображает все атрибуты каталога /tmp

Дефисы соответствуют 13 атрибутам ext2/ext3, которые могут быть установлены. Ни один из них не является отображаемым по умолчанию: а (только добавление), с (сжатый), d (без дампа), I (постоянный), j (регистрация данных), s (безопасное удаление), t (запрет слияния в конце файла), и (неудаляемый), А (без обновления atime), D (синхронные обновления каталогов), S (синхронные обновления) и Т (верхушка дерева каталогов). С помощью команды chattr вы можете изменять эти атрибуты:

$ sudo chattr +i whatever. iso

$ sudo chattr +A – R /home/francois/images/

$ sudo chattr +d ubuntu•7.04-desktop. i386.iso

$ lsattr whatever. iso /home/francois/images/ ubuntu-7.04-desktop. i386.iso

—-i——– whatever. iso

——-A—–/home/francois/images/ei nstei n. jpg

——-A—– /home/francois/images/goth. jpg

——d—— ubuntu-7.04-desktop. i386.iso

Как видно из предыдущего примера, при использовании параметра +i файл whatever i so становится постоянным, то есть он не может быть удален, переименован или изменен, а также для него не может быть создана ссылка. Это предотвращает любые случайные изменения файла (даже суперпользователь не сможет внести изменения в файл, пока не будет снят атрибут i.) Используйте этот атрибут для обеспечения безопасности системных файлов.

Параметр – R, приведенный в примере, рекурсивно устанавливает параметр +А, что запрещает всем файлам, хранящимся в каталоге i mages и его подкаталогах, изменять время доступа (atime). Установка атрибута А может помочь сэкономить I/O дисков ноутбуков и флэш-накопителей. Если вы для резервного копирования своих файловых систем ext2/ext3 используете команду dump, то к файлам, обладающим атрибутом d, копирование йрименено не будет. В данном случае мы предпочитаем не выполнять копирования больших образов ISO.

Для удаления атрибута воспользуйтесь командой chatter совместно со знаком:

$ sudo chattr – i whatever. iso

Взломщики, которым успешно удалось проникнуть в систему, часто заменяют некоторые системные бинарные файлы (например, Is или ps) поврежденными версиями и делают их неотключаемыми. Поэтому полезно иногда проверять атрибуты, назначенные исполняемым файлам (например, в каталогах /bin, /usr/bin, /sbin и /usr/sbin).

Поделиться новостью...

Ubuntu копирование файла с правами

Смотрите также:

Написать комментарий