[7-Zip](https://en.wikipedia.org/wiki/ru:7-Zip "wikipedia:ru:7-Zip") — свободный файловый архиватор с высокой степенью сжатия данных. *p7zip* - портированная консольная версия 7-Zip для систем стандарта [POSIX](https://en.wikipedia.org/wiki/ru:POSIX "wikipedia:ru:POSIX"), включая Linux.

## Contents

*   [1 Установка и использование](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.B8_.D0.B8.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5)
*   [2 Синтаксис](#.D0.A1.D0.B8.D0.BD.D1.82.D0.B0.D0.BA.D1.81.D0.B8.D1.81)
    *   [2.1 Команды](#.D0.9A.D0.BE.D0.BC.D0.B0.D0.BD.D0.B4.D1.8B)
    *   [2.2 Ключи](#.D0.9A.D0.BB.D1.8E.D1.87.D0.B8)
*   [3 Резервное копирование и ограничения](#.D0.A0.D0.B5.D0.B7.D0.B5.D1.80.D0.B2.D0.BD.D0.BE.D0.B5_.D0.BA.D0.BE.D0.BF.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.B8_.D0.BE.D0.B3.D1.80.D0.B0.D0.BD.D0.B8.D1.87.D0.B5.D0.BD.D0.B8.D1.8F)
*   [4 Диагностика](#.D0.94.D0.B8.D0.B0.D0.B3.D0.BD.D0.BE.D1.81.D1.82.D0.B8.D0.BA.D0.B0)
*   [5 Дополнительные ссылки](#.D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D1.81.D1.81.D1.8B.D0.BB.D0.BA.D0.B8)

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

[Установите](/index.php/Pacman_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2 "Pacman (Русский)") пакет [p7zip](https://www.archlinux.org/packages/?name=p7zip), который доступен в [официальных репозиториях](/index.php/Official_repositories_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Official repositories (Русский)").

Этот пакет включает в себя три бинарника, `/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](https://en.wikipedia.org/wiki/MIPS "wikipedia: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](/index.php/Tar "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](http://p7zip.sourceforge.net/)

[7-Zip](http://www.7-zip.org/)