p7zip (Русский)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale.pngЭта страница нуждается в сопроводителеTango-preferences-desktop-locale.png

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

7-Zip — свободный файловый архиватор с высокой степенью сжатия данных. p7zip - портированная консольная версия 7-Zip для систем стандарта POSIX, включая Linux.

Установка и использование

Установите пакет 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.

Примечание: В последних релизах (начиная с версии 15.09) 7-Zip больше не сортирует файлы по расширению при добавлении в архив (что субъективно ухудшает степень архивации). Для возвращения старого поведения следует использовать флаг -mqs

Ключи

Ключи могут быть использованы в любом порядке. Ключи не поддерживают пробелы и табуляции между ними и их значениями. Ключи к регистру не чувствительны, но некоторые из аргументов могут быть. Здесь рассмотрены лишь некоторые. С полным списком можно ознакомиться здесь /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.

Примечание: SFX архив ДОЛЖЕН оканчиваться на ".exe"
$ 7z a -mhe=on -pmy_password archive.7z a_directory

Архивирует директорию a_directory в архив archive.7z с шифрованием данных и заголовков.

Резервное копирование и ограничения

Важно: НЕ ИСПОЛЬЗУЙТЕ 7-zip для резервного копирования систем Linux/Unix! 7-zip не сохраняет значения владельца/группы для файлов.

В 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) (Пользователь
       отменил выполнение вручную)

Дополнительные ссылки

p7zip

7-Zip