Difference between revisions of "P7zip (Русский)"

From ArchWiki
Jump to navigation Jump to search
(unzip-iconv)
(style, wording. Sync intro, 'See also'. Rm 'Резервное копирование и ограничения' section because article is not about tar, instead move warning to the top. Leave only relevant examples.)
Line 11: Line 11:
 
{{Unmaintained (Русский)}}
 
{{Unmaintained (Русский)}}
  
[[Wikipedia:ru:7-Zip|7-Zip]] — свободный файловый архиватор с высокой степенью сжатия данных. ''p7zip'' - портированная консольная версия 7-Zip для систем стандарта [[Wikipedia:ru:POSIX|POSIX]], включая Linux.
+
[http://p7zip.sourceforge.net/ p7zip] — портированная консольная версия [[Wikipedia:ru:7-Zip|7-Zip]] для [[Wikipedia:ru:POSIX|POSIX]]-систем, включая Linux.
  
== Установка и использование ==
+
== Установка ==
  
[[Pacman (Русский)#Установка пакетов|Установите]] пакет {{Pkg|p7zip}}, который доступен в [[Official repositories (Русский)|официальных репозиториях]].
+
[[Установите]] пакет {{Pkg|p7zip}}.
  
Этот пакет включает в себя три бинарника, {{ic|/usr/bin/7z}}, {{ic|/usr/bin/7za}}, и {{ic|/usr/bin/7zr}}. Их руководства (man-pages) объясняют различия в следующем:
+
Для запуска программы используйте следующую команду:
* 7z использует плагины для обработки архивов;
 
* 7za автономный. 7za может обрабатывать меньше форматов, чем 7z, но не нуждается в чём-либо;
 
* 7zr также автономный. Является облегчённой версией 7za предназначенный только для .7z архивов.
 
  
Для запуска программы используйте эту простую команду:
+
  $ 7z
  # 7z
 
  
== Синтаксис ==
+
== Примеры ==
  
# 7z <команда> [-<ключ>] <название_архива> [<аргументы>]
+
{{Warning (Русский)|Не используйте формат 7z для резервного копирования, так как он не сохраняет значения владельца и группы для файлов. См. справочное руководство {{man|1|7z}} для получения более подробной информации.}}
  
Выражения в квадратных скобках (между '[' и ']') опциональны. Команды и ключи не чувствительны к регистру.
+
Добавить файл или директорию в архив (или создать новый):
{{Note (Русский)|<название_архива> должно быть первым в списке имён файлов и директорий после всех команд и ключей.}}
 
  
=== Команды ===
+
$ 7z a <имя архива> <имя файла>
  
* {{ic|'''a'''}} Добавляет файлы в архив, либо создаёт новый архив.
+
Также можно указать пароль с помощью флага {{ic|-p}} и скрыть структуру архива флагом {{ic|1=-mhe=on}}:
$ 7z a archive1.zip ./subdir/
 
$ 7z a Files.7z *.txt -r
 
Первая добавляет все файлы и подкаталоги из директории subdir в архив archive1.zip. Файлы в архиве распологаются в каталоге subdir.Вторая рекурсивно добавляет все *.txt из текущей директории и поддиректорий:
 
  
* {{ic|'''b'''}} Бенчмарк-тест. Показывает быстродействие в [[Wikipedia:MIPS|MIPS]]. Значение рейтинга определяется по измеренной скорости процессора и нормализуется с результатами Intel Core 2 с выключенной многопоточностью.
+
  $ 7z a <имя архива> <имя файла> -p<пароль> -mhe=on
$ 7z b [количество_итераций] [-mmt{N}] [-md{N}]
 
  $ 7z b -mmt1 -md26
 
Вы можете менять размер словаря для снижения потребления памяти параметром {{ic|-md{N}}}. Параметр {{ic|-mmt{N}}} задаёт количество потоков. Пример запускает бенчмарк с одним потоком и 64 MB словарём, который получается как 2^26 = 64MB
 
  
* {{ic|'''d'''}} Удаляет файлы из архива.
+
Обновить старые файлы в архиве или добавить те, которых ранее не было:
$ 7z d archive.zip *.bak -r
 
Рекурсивно удаляет *.bak:
 
  
* {{ic|'''e'''}} Извлекает все файлы из архива в '''одну директорию'''. Для извлечения с сохранением путей используйте команду {{ic|x}}.
+
  $ 7z u <имя архива> <имя файла>
  $ 7z e archive.zip -o./soft *.cpp -r
 
Извлекает все *.cpp файлы из архива archive.zip в директорию ./soft.
 
  
* {{ic|'''h'''}} Высчитывает значения хэш. Поддерживает: CRC32, CRC64, SHA1, SHA256. По умолчанию используется CRC32.
+
Вывести содержимое архива:
$ 7z h a.txt
 
$ 7z h -scrcsha256 arc.7z
 
Расчёт CRC32 для файла a.txt и SHA256 для архива arc.7z
 
  
* {{ic|'''i'''}} Выводит информацию о поддерживаемых форматах.
+
$ 7z l <имя архива>
  
* {{ic|'''l'''}} Список содержимого архива
+
Извлечь все файлы в текущую директорию (в один каталог):
$ 7z l archive.zip
 
  
* {{ic|'''rn'''}} Переименовывает файлы внутри архива.
+
  $ 7z e <имя архива>
  $ 7z rn <архив> <имя_файла> <новое_имя_файла> [ <имя_директори> <новое_имя_директории> ]
 
  
* {{ic|'''t'''}} Тестирует целостность файлов в архиве.
+
Извлечь с полными путями:
$ 7z t archive.zip *.doc -r
 
Проверяет все *.doc в archive.zip.
 
  
* {{ic|'''u'''}} Обновляет старые файлы в архиве и добавляет тех, что раньше не было.
+
  $ 7z x <имя архива>
[Note (Русский)|Обновление непрерывного архива .7z может быть медленным, так как может потребовать рекомпрессию]
 
  $ 7z u archive.zip *.doc
 
Обновляет *.doc файлы в archive.zip.
 
  
* {{ic|'''x'''}} Извлекает файлы с сохранением их путей.
+
Извлечь в новую директорию:
$ 7z x archive.zip
 
$ 7z x archive.zip -o./soft *.cpp -r
 
Первый вариант извлекает всё из archive.zip в текущую директорию. Второй все *.cpp файлы из archive.zip в директорию ./soft.
 
  
{{Note (Русский)|В последних релизах (начиная с версии 15.09) 7-Zip больше не сортирует файлы по расширению при добавлении в архив (что субъективно ухудшает степень архивации). Для возвращения старого поведения следует использовать флаг {{ic|-mqs}}}}
+
$ 7z x -o<имя директории> <имя архива>
  
=== Ключи ===
+
Проверить целостность файлов в архиве:
Ключи могут быть использованы в любом порядке. Ключи не поддерживают пробелы и табуляции между ними и их значениями. Ключи к регистру не чувствительны, но некоторые из аргументов могут быть. Здесь рассмотрены лишь некоторые. С полным списком можно ознакомиться здесь {{ic|/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
+
  $ 7z t <имя архива>
Добавляет все файлы из директории dir1 в SFX (самораспаковывающийся) архив archive.exe.
 
{{Note (Русский)|SFX архив '''ДОЛЖЕН''' оканчиваться на ".exe"}}
 
$ 7z a -mhe=on -pmy_password archive.7z a_directory
 
Архивирует директорию a_directory в архив archive.7z с шифрованием данных и заголовков.
 
  
== Резервное копирование и ограничения ==
+
== Разница между 7z, 7za и 7zr ==
  
{{Warning (Русский)|НЕ ИСПОЛЬЗУЙТЕ 7-zip для резервного копирования систем Linux/Unix! 7-zip не сохраняет значения владельца/группы для файлов.}}
+
Этот пакет включает в себя три бинарных файла: {{ic|/usr/bin/7z}}, {{ic|/usr/bin/7za}} и {{ic|/usr/bin/7zr}}. Справочное руководство объясняет различия:
В Linux/Unix, для резервного копирования директорий можно использовать [[tar]]:
 
$ tar cf - directory | 7za a -si directory.tar.7z
 
  для резервного копирования
 
 
$ 7za x -so directory.tar.7z | tar xf -
 
  для восстановления
 
  
== Диагностика ==
+
* {{man|1|7z}} использует плагины для обработки архивов.
 +
* {{man|1|7za}} — автономный исполняемый файл, поддерживающий меньшее количество форматов архивов.
 +
* {{man|1|7zr}} — также автономный исполняемый файл, "облегчённая" версия 7za. Поддерживает только незашифрованные 7z-архивы.
  
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) (Пользователь
 
        отменил выполнение вручную)
 
  
== Распаковка ZIP с именами в неверной кодировке ==
+
=== ZIP-архивы извлекаются с именами в неверной кодировке ===
Если имена файлов и директорий отображаются в неверной кодировке, установите {{aur|unzip-iconv}}. Как правило, это касается архивов, созданных в проводнике Windows. Чтобы избежать проблем в будущем, используйте 7zip под Windows - он создаёт корректные zip и 7z архивы<sup>[https://lorwiki.org.ru/wiki/%D0%9A%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%BC%D0%B5%D0%BD_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%B2_%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%B0%D1%85_zip LOR wiki]</sup>.
 
  
== Дополнительные ссылки ==
+
Если имена файлов и директорий отображаются в неверной кодировке, установите {{aur|unzip-iconv}}. Как правило, это касается архивов, созданных в проводнике Windows. Чтобы избежать проблем в будущем, используйте 7-Zip под Windows — он создаёт корректные архивы ZIP и 7z [https://lorwiki.org.ru/wiki/%D0%9A%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B8%D0%BC%D0%B5%D0%BD_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%B2_%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%B0%D1%85_zip].
  
* [http://p7zip.sourceforge.net/ p7zip]
+
== Смотрите также ==
* [http://www.7-zip.org/ 7-Zip]
+
 
 +
* [https://www.7-zip.org/ Домашняя страница 7-Zip]
 +
* [https://www.ibm.com/developerworks/community/blogs/6e6f6d1b-95c3-46df-8a26-b7efd8ee4b57/entry/how_to_use_7zip_on_linux_command_line144?lang=en How to use 7zip on Linux command Line]

Revision as of 17:58, 6 June 2019

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

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

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

Установка

Установите пакет p7zip.

Для запуска программы используйте следующую команду:

$ 7z

Примеры

Важно: Не используйте формат 7z для резервного копирования, так как он не сохраняет значения владельца и группы для файлов. См. справочное руководство 7z(1) для получения более подробной информации.

Добавить файл или директорию в архив (или создать новый):

$ 7z a <имя архива> <имя файла>

Также можно указать пароль с помощью флага -p и скрыть структуру архива флагом -mhe=on:

$ 7z a <имя архива> <имя файла> -p<пароль> -mhe=on

Обновить старые файлы в архиве или добавить те, которых ранее не было:

$ 7z u <имя архива> <имя файла>

Вывести содержимое архива:

$ 7z l <имя архива>

Извлечь все файлы в текущую директорию (в один каталог):

$ 7z e <имя архива>

Извлечь с полными путями:

$ 7z x <имя архива>

Извлечь в новую директорию:

$ 7z x -o<имя директории> <имя архива>

Проверить целостность файлов в архиве:

$ 7z t <имя архива>

Разница между 7z, 7za и 7zr

Этот пакет включает в себя три бинарных файла: /usr/bin/7z, /usr/bin/7za и /usr/bin/7zr. Справочное руководство объясняет различия:

  • 7z(1) использует плагины для обработки архивов.
  • 7za(1) — автономный исполняемый файл, поддерживающий меньшее количество форматов архивов.
  • 7zr(1) — также автономный исполняемый файл, "облегчённая" версия 7za. Поддерживает только незашифрованные 7z-архивы.

Решение проблем

ZIP-архивы извлекаются с именами в неверной кодировке

Если имена файлов и директорий отображаются в неверной кодировке, установите unzip-iconvAUR. Как правило, это касается архивов, созданных в проводнике Windows. Чтобы избежать проблем в будущем, используйте 7-Zip под Windows — он создаёт корректные архивы ZIP и 7z [1].

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