p7zip (Русский)
7-Zip — свободный файловый архиватор с высокой степенью сжатия данных. p7zip - портированная консольная версия 7-Zip для систем стандарта POSIX, включая Linux.
Contents
Установка и использование
Установите пакет p7zip, который доступен в официальных репозиториях.
Этот пакет включает в себя три бинарника, /usr/bin/7z
, /usr/bin/7za
, и /usr/bin/7zr
. Их руководства (man-pages) объясняют различия в следующем:
- 7z использует плагины для обработки архивов;
- 7za автономный. 7za может обрабатывать меньше форматов, чем 7z, но не нуждается в чём-либо;
- 7zr также автономный. Является облегчённой версией 7za предназначенный только для .7z архивов.
Для запуска программы используйте эту простую команду:
# 7z
Синтаксис
# 7z <команда> [-<ключ>] <название_архива> [<аргументы>]
Выражения в квадратных скобках (между '[' и ']') опциональны. Команды и ключи не чувствительны к регистру.
Команды
-
a
Добавляет файлы в архив, либо создаёт новый архив.
$ 7z a archive1.zip ./subdir/ $ 7z a Files.7z *.txt -r
Первая добавляет все файлы и подкаталоги из директории subdir в архив archive1.zip. Файлы в архиве распологаются в каталоге subdir.Вторая рекурсивно добавляет все *.txt из текущей директории и поддиректорий:
-
b
Бенчмарк-тест. Показывает быстродействие в MIPS. Значение рейтинга определяется по измеренной скорости процессора и нормализуется с результатами Intel Core 2 с выключенной многопоточностью.
$ 7z b [количество_итераций] [-mmt{N}] [-md{N}] $ 7z b -mmt1 -md26
Вы можете менять размер словаря для снижения потребления памяти параметром -md{N
}. Параметр -mmt{N
} задаёт количество потоков. Пример запускает бенчмарк с одним потоком и 64 MB словарём, который получается как 2^26 = 64MB
-
d
Удаляет файлы из архива.
$ 7z d archive.zip *.bak -r
Рекурсивно удаляет *.bak:
-
e
Извлекает все файлы из архива в одну директорию. Для извлечения с сохранением путей используйте командуx
.
$ 7z e archive.zip -o./soft *.cpp -r
Извлекает все *.cpp файлы из архива archive.zip в директорию ./soft.
-
h
Высчитывает значения хэш. Поддерживает: CRC32, CRC64, SHA1, SHA256. По умолчанию используется CRC32.
$ 7z h a.txt $ 7z h -scrcsha256 arc.7z
Расчёт CRC32 для файла a.txt и SHA256 для архива arc.7z
-
i
Выводит информацию о поддерживаемых форматах.
-
l
Список содержимого архива
$ 7z l archive.zip
-
rn
Переименовывает файлы внутри архива.
$ 7z rn <архив> <имя_файла> <новое_имя_файла> [ <имя_директори> <новое_имя_директории> ]
-
t
Тестирует целостность файлов в архиве.
$ 7z t archive.zip *.doc -r
Проверяет все *.doc в archive.zip.
-
u
Обновляет старые файлы в архиве и добавляет тех, что раньше не было.
[Note (Русский)|Обновление непрерывного архива .7z может быть медленным, так как может потребовать рекомпрессию]
$ 7z u archive.zip *.doc
Обновляет *.doc файлы в archive.zip.
-
x
Извлекает файлы с сохранением их путей.
$ 7z x archive.zip $ 7z x archive.zip -o./soft *.cpp -r
Первый вариант извлекает всё из archive.zip в текущую директорию. Второй все *.cpp файлы из archive.zip в директорию ./soft.
Ключи
Ключи могут быть использованы в любом порядке. Ключи не поддерживают пробелы и табуляции между ними и их значениями. Ключи к регистру не чувствительны, но некоторые из аргументов могут быть. Здесь рассмотрены лишь некоторые. С полным списком можно ознакомиться здесь /usr/share/doc/p7zip/DOC/MANUAL/switches/index.htm
$ 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir1
Добавляет все файлы из директории dir1 в архив archive.7z используя "ultra settings".
-t7z 7z архив -m0=lzma lzma метод -mx=9 уровень компрессии = 9 (Ultra) -mfb=64 число fast bytes для LZMA = 64 -md=32m размер словаря = 32 mb -ms=on непрерывный архив = on
$ 7z a -sfx archive.exe dir1
Добавляет все файлы из директории dir1 в SFX (самораспаковывающийся) архив archive.exe.
$ 7z a -mhe=on -pmy_password archive.7z a_directory
Архивирует директорию a_directory в архив archive.7z с шифрованием данных и заголовков.
Резервное копирование и ограничения
В Linux/Unix, для резервного копирования директорий можно использовать tar:
$ tar cf - directory | 7za a -si directory.tar.7z для резервного копирования $ 7za x -so directory.tar.7z | tar xf - для восстановления
Диагностика
7-Zip возвращает следующие коды своей работы:
0 Normal (ошибок и предупреждений зафиксировано не было) 1 Warning (Предупреждение. Без критических ошибок. Например, некоторые файды не могут быть прочитаны во время компрессии. 2 Fatal error (Критическая ошибка) 7 Bad command line parameters (Не верно задан ключ или параметр) 8 Not enough memory for operation (Не достаточно памяти) 255 User stopped the process with control-C (or similar) (Пользователь отменил выполнение вручную)