2.8.4.3 Утилиты для архивирования, восстановления и копирования файлов в терминале
Скачать документВы можете подробнее ознакомиться с работой утилит для архивирования, копирования и восстановления файлов, просмотрев наши обучающие видео:
на RuTube:
в Яндекс.Дзен:
в VK Видео:
На наших каналах вы также сможете найти много другой полезной информации.
dd
Команда для копирования системного раздела диска в файл с условным названием /media/device/sda.bin:dd if=/dev/sda1 of=/media/device/sda1.bin bs=4096
С учетом возможности перенаправления стандартного ввода/вывода команда dd позволяет применять для копирования алгоритмы сжатия или защитного преобразования:
dd if=/dev/sda1 bs=4096 | gzip > /media/device/sda1.bin.gz2
Команда для восстановления системного раздела диска (для этого потребуется загрузиться с отдельного диска, и примонтировать носитель, на котором был размещен файл с образом):
dd if=/media/mountpoint/sda1.bin of=/dev/sda1 bs=4096
tar
tar упаковка:
tar -cf jpg.tar *.jpg
или указав каталог:
tar -cf jpg.tar ~/files
распаковка:
tar -xvf archive.tar
в папку:
tar -xvf archive.tar -C /path
gzip сжатие:
tar -cvzf files.tar.gz ~/files
распаковка:
tar -xzvf archive.tar.gz
bzip2 сжатие:
tar -cvjf files.tar.bz2 ~/files
распаковка:
tar -xjvf /path/to/archive.tar.bz2
в папку:
tar -xjvf archive.tar.bz2 -C /path/to/folder
Создание архива на удаленной машине
tar -cvpz ./ | ssh root@10.81.1.190 "( cat > /home/user/ssh_backup.tar )"\
Синхронизация папок
zip
zip сжатие:
zip file_archive.zip -r /var/log/ zip file_archive.zip file1.txt file2.log
Распаковка:
unzip file_archive.zip unzip file_archive.zip -d /tmp
unrar
Для работы с архивами rar установите пакет:
sudo dnf install unrar
Распаковка:
unrar x archive.rar unrar x archive.rar ./folder
rsync
Rsync - это программное обеспечение с открытым исходным кодом, которое можно использовать для синхронизации файлов и папок с локального компьютера на удаленный и наоборот. Примечательная особенность Rsync - возможность передавать зашифрованные файлы с помощью SSH и SSL. Кроме того, здесь передача файлов выполняется в один поток, в отличие от других подобных программ, создающий отдельный поток для передачи каждого файла. Это увеличивает скорость и убирает дополнительные задержки, которые становятся проблемой при передаче большого количества маленьких файлов.
Основные параметры rsync:
-v
- Выводить подробную информацию о процессе копирования;
-q
- Минимум информации;
-c
- Проверка контрольных сумм для файлов;
-a
- Режим архивирования, когда сохраняются все атрибуты оригинальных файлов;
-R
- Относительные пути;
-b
- Создание резервной копии;
-u
- Не перезаписывать более новые файлы;
-l
- Копировать символьные ссылки;
-L
- Копировать содержимое ссылок;
-H
- Копировать жесткие ссылки;
-p
- Сохранять права для файлов;
-g
- Сохранять группу;
-t
- Сохранять время модификации;
-x
- Работать только в этой файловой системе;
-e
- Использовать другой транспорт, например, ssh;
-z
- Сжимать файлы перед передачей;
--delete
- Удалять файлы которых нет в источнике;
--exclude
- Исключить файлы по шаблону;
--recursive
- Перебирать директории рекурсивно;
--no-recursive
- Отключить рекурсию;
--progress
- Выводить прогресс передачи файла;
--stat
- Показать статистику передачи;
--version
- Версия утилиты.
Rsync позволяет синхронизировать файлы и папки в пределах одной машины. Давайте сначала рассмотрим использование rsync для синхронизации файла на локальном компьютере:
rsync -zvh file /tmp/backups/
Синхронизация папок rsync выполняется так же, как и файлов:
rsync -zvh /var/account/* /tmp/backups/
Если вы хотите, чтобы все атрибуты файлов, такие, как дата изменения и создания сохранялись, необходимо использовать опцию -a:
rsync -azvh /var/account/* /tmp/backups/
Синхронизация файлов производится следующим образом. Скопируем локальную папку files, на удаленный сервер:
rsync -avz /home/files root@10.81.1.190:/home/user
По умолчанию rsync попытается использовать транспорт ssh. Если вы хотите использовать ранее созданный сервер rsync, нужно указать это явно:
rsync -avz /home/files rsync://10.81.1.190:/share
Точно также можно синхронизировать файлы с rsync из удаленного сервера:
rsync -avz root@10.81.1.190:/home/ /home/files/
p7zip
7-Zip — свободный файловый архиватор с высокой степенью сжатия данных благодаря формату 7z с компрессией LZMA. Кроме формата 7z поддерживает также ZIP, GZIP, BZIP2 и TAR. Может распаковать множество других форматов, например CAB, CHM, DEB, ISO, LZMA, MSI, RAR и другие. Формат 7z достаточно популярен среди архивов, поэтому имеет смысл иметь поддержку 7z в системе, а также создавать свои архивы в виде 7z формата, ибо сжатие с помощью 7z на 30-50% лучше, чем сжатие с помощью ZIP.
Основные параметры:
a
– Создание архива, добавить файлы в архив
b
- Бенчмарк
d
- Удалить файлы из архива
e
- Извлечь файлы из архива (без использования имён директорий)
l
- Список содержимого архива
t
- Тестировать архив на целостность
u
- Обновить файлы в архиве
x
- Извлечь файлы с полными путями
Для упаковки в архив archive.7z файлов file, file1, file2 в директории /home/user/files, выполните команду:
7z a archive.7z file file1 file2
Для упаковки в архив archive.7z всего содержимого директории /home/user/files, выполните команду(в текущем каталоге):
7z a archive.7z
Файл archive.7z будет создаваться в текущей директории. Можно использовать абсолютный/относительный путь, например:
7z a /home/user/archive.7z
Опция -t определяет формат архива на выходе. Например -t7z устанавливает 7z формат (он же используется по умолчанию). Также можно определить иной формат архива: zip, gzip, bzip2 или tar. Распаковка архива в текущую директорию:
7z x archive.7z
Чтобы распаковать архив в определенную директорию используется опция -o, за которой без пробела указывается путь до директории:
7z x archive.7z -o./files
Для просмотра содержимого архива используется команда:
7z l archive.7z
Чтобы проверить целостность архива (проверить, что архив «не битый») используется команда:
7z t archive.7z
Дата последнего изменения: 05.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.