[go: nahoru, domu]

Jump to content

7-Zip: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Undid revision 177064595 by Porta123 (talk)
→‎Others: Remove bit duplicating stuff in the forks section
Tags: references removed Visual edit
 
(888 intermediate revisions by more than 100 users not shown)
Line 1: Line 1:
{{Short description|Open-source file archiver}}
{{ infobox software2
{{Use dmy dates|date=June 2014}}
| name = 7-Zip
{{Infobox software
| logo = [[Image:7ziplogo.svg|64px|7-Zip Logo]]
| name = 7-Zip
| screenshot = [[Image:7-Zip screenshot.png|250px|Screenshot of 7-Zip]]
| logo = 7ziplogo.svg
| caption = 7-Zip archiver
| screenshot = 7-Zip.png
| developer = [[Igor Pavlov (programmer)|Igor Pavlov]]
| caption = 7-Zip File Manager on [[Windows 11]]
| operating_system = [[AmigaOS]], [[BeOS]], [[DOS]], [[FreeBSD]], [[Linux]], [[Mac OS X]], [[Microsoft Windows]], [[MorphOS]], others
| developer = [[Igor Pavlov (programmer)|Igor Pavlov]]<ref name="dobb">{{cite web |url=https://www.drdobbs.com/dr-dobbs-data-compression-newsletter/184405338 |title=A Few Questions for Igor Pavlov |date=2003-04-30 |publisher=[[Dr. Dobb's]] Data Compression Newsletter |access-date=2023-03-28}}</ref>
| genre = [[File archiver]]
| released = {{Start date and age|1999|7|19|df=yes}}<ref name="7zipHistory">{{cite web |url=https://7-zip.org/history.txt |title=History of 7-zip changes |publisher =7-Zip 20.02 alpha |date=8 August 2020|access-date=8 August 2020}}</ref>
| license = [[GNU Lesser General Public License]]<br /> [[BSD license]] for [[AES]] code<br />Other licenses also apply (including the [[non-free]] un[[RAR (file format)|RAR]] license terms)
| latest release version =
| website = http://7-zip.org/
| latest release date =
| latest preview version =
| latest preview date =
| programming language = [[Assembly language|Assembly]], [[C (programming language)|C]] and [[C++]]<ref name="p7zip SourceForge">{{cite web | url =https://sourceforge.net/projects/sevenzip/ | title =P7ZIP SourceForge |date= January 2016 | website=[[SourceForge.net]] | access-date =2016-03-07 }}</ref>
| operating system = [[Windows]]/[[ReactOS]],<ref>{{cite web | url =https://www.reactos.org/wiki/Tests_for_0.4.14 | title = Tests for ReactOS 0.4.14}}</ref> [[BSD]], [[macOS]], [[Linux]],<ref name="7zip-linux"/>
| language count = 89
| language footnote = <ref>''Options...'' dialog box of 7-Zip for Windows 21.00 alpha</ref>
| language = <p>Afrikaans, Albanian, Arabic, Aragonese, Armenian, Asturian, Azerbaijani, Bangla, Bashkir, Basque, Belarusian, Breton, Bulgarian, Catalan, Chinese Simplified, Chinese Traditional, Corsican, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Extremaduran, Farsi, Finnish, French, Frisian, Friulian, Galician, Georgian, German, Greek, Gujarati, Indian, Hebrew, Hindi, Indian, Hungarian, Icelandic, Ido, Indonesian, Irish, Italian, Japanese, Kabyle, Karakalpak - Latin, Kazakh, Korean, Kurdish - Sorani, Kurdish, Kyrgyz, Latvian, Ligurian, Lithuanian, Macedonian, Malay, Marathi, Mongolian (MenkCode), Mongolian (Unicode), Mongolian, Nepali, Norwegian Bokmal, Norwegian Nynorsk, Pashto, Polish, Portuguese Brazilian, Portuguese Portugal, Punjabi, Indian, Romanian, Russian, Sanskrit, Indian, Serbian - Cyrillic, Serbian - Latin, Sinhala, Vietnam, Slovak, Slovenian, Spanish, Swedish, Tamil, Tatar, Thai, Turkish, Ukrainian, Uyghur, Uzbek, Valencian, Vietnamese, Welsh, Yoruba</p><p>These translations are partial and for the user interface only. Help and documentations are in English.</p>
| size = 1.1–1.7 [[Megabyte|MB]]<ref>{{cite web|title=7-Zip - Browse /7-Zip/16.00|url=https://sourceforge.net/projects/sevenzip/files/7-Zip/16.00/|website=[[SourceForge.net]]|publisher=Slashdot Media|access-date=12 May 2016|date=10 April 2016}}</ref>
| genre = [[File archiver]]
| license = [[GNU Lesser General Public License|LGPL-2.1-or-later]] with unRAR restriction<ref name=7zipdotorglicensetxt>{{cite web | url=https://7-zip.org/license.txt | title=7-Zip License for use and distribution | last=Pavlov | first=Igor |website=7-zip.org/ | year=2010 | access-date=2010-04-16 | archive-url= https://web.archive.org/web/20100410171656/http://www.7-zip.org/license.txt| archive-date= 10 April 2010 | url-status= live}}</ref> / LZMA SDK in the [[public domain]]<ref name="LZMA_SDK" />
}}
}}


'''7-Zip''' is a [[free and open-source]] [[file archiver]], a utility used to place groups of files within compressed containers known as "archives". It is developed by [[Igor Pavlov (programmer)|Igor Pavlov]] and was first released in 1999.<ref name="7zipHistory" /> 7-Zip has its own archive format called [[7z]], but can read and write several others.
'''7-Zip''' is an [[open source]] [[file archiver]] designed originally for the [[Microsoft Windows|Windows]] operating system, and later made available to other systems. In the form of [[p7zip]], 7-Zip has been ported for use on [[Unix-like]] systems such as [[GNU]]/[[Linux]], [[Berkeley Software Distribution|BSD]], [[Mac OS X]]. It is also compatible with DOS via either a DOS port, or by using the [[HX DOS Extender|HX-DOS]] extender to run the Windows command-line version. Amongst Non-Unix, Non-Windows systems there should be also mentioned [[AmigaOS]] port of 7-Zip.


The program can be used from a Windows [[graphical user interface]] that also features shell integration, from a Windows [[command-line interface]] as the command <code>7za</code> or <code>7za.exe</code>, and from [[POSIX]] systems as <code>p7zip</code>.<ref name="p7ziphome">{{cite web | url =https://github.com/jinfeihan57/p7zip | title =P7ZIP |date= July 2022 | website =GitHub | access-date =2022-07-06 }}</ref> Most of the 7-Zip [[source code]] is under the [[GNU Lesser General Public License|LGPL-2.1-or-later]] license; the [[unRAR]] code, however, is under the [[GNU Lesser General Public License|LGPL-2.1-or-later]] license with an "unRAR restriction", which states that developers are not permitted to use the code to [[reverse-engineer]] the [[RAR (file format)|RAR]] compression algorithm.<ref>{{Cite web|url=https://www.7-zip.org/|title=7-Zip|last=Pavlov|first=Igor|website=7-zip.org|access-date=31 October 2012}}</ref><ref>{{Cite web|url=https://www.7-zip.org/license.txt|title=7-Zip – License for use and distribution|last=Pavlov|first=Igor|website=7-zip.org|access-date=31 October 2012}}</ref>
7-Zip operates primarily with the [[7z]] archive format, as well as being able to read several other archive formats. In operation a user can use the [[Command line interface|command line]] (all systems), [[graphical user interface]] ("Windows" only) or seamless Windows shell environment methods of control.


Since version 21.01 alpha, preliminary Linux support has been added to the upstream instead of the p7zip project.<ref name="7zip-linux">{{cite web |url=https://www.phoronix.com/scan.php?page=news_item&px=7-Zip-21.01-Initial-Linux |title=Upstream 7-Zip Adds Preliminary Linux Support |last=Larabel |first=Michael |date=2021-03-12 |publisher=Phoronix |language=en|accessdate=2021-03-17}}</ref>
7-Zip began in 2000 and is actively developed by [[Igor Pavlov (programmer)|Igor Pavlov]]. In contrast to the market-leading programs [[WinZip]] and [[WinRAR]], which remain as [[proprietary software|proprietary]] competitors, 7-Zip is distributed under the terms of the [[GNU Lesser General Public License]] (LGPL) (with the RAR license restrictions), with the [[Advanced Encryption Standard|AES]] code under the revised [[BSD license]], and as such is [[free software]].


==Archive formats==
7-Zip was the winner of the [[SourceForge.net]] 2007 community choice awards for "Technical Design" and for "Best Project".<ref>[http://sourceforge.net/projects/sevenzip SourceForge.net: 7-Zip]</ref>


==The 7z archive format==
===7z===
{{Main|7z}}
{{Main|7z}}
By default, 7-Zip is used to create 7z format archives, with a <code>.7z</code> [[file extension]]. Each archive can contain multiple directories and files. As a ''container'' format, security or size reduction are achieved using a stacked combination of filters. These can consist of pre-processors, compression algorithms and encryption filters.


By default, 7-Zip creates 7z-format archives with a <code>.7z</code> [[file extension]]. Each archive can contain multiple directories and files. As a ''container'' format, security or size reduction are achieved by looking for similarities throughout the data using a stacked combination of filters. These can consist of pre-processors, [[Data compression|compression algorithms]], and [[encryption]] filters.
The core .7z compression stage uses a variety of algorithms, the most common of which are [[Bzip2]] and [[LZMA]]. Developed by Igor Pavlov, LZMA is a relatively new system, making its debut as part of the 7z format. LZMA consists of a large LZ-based sliding dictionary up to 4 GB in size, backed by a [[Range encoding|range coder]].


The core 7z compression uses a variety of [[algorithm]]s, the most common of which are [[bzip2]], [[Prediction by partial matching|PPMd]], [[Lempel–Ziv–Markov chain algorithm|LZMA2]], and [[Lempel–Ziv–Markov chain algorithm|LZMA]]. Developed by Pavlov, LZMA is a relatively new system, making its debut as part of the 7z format. LZMA uses an LZ-based sliding dictionary of up to 3840 MB in size, backed by a [[Range encoding|range coder]].<ref>{{cite web|last=Diaz|first=Antonio Diaz |title=Lzip|url=http://lzip.nongnu.org/lzip.html |website=LZip.NonGNU.org |access-date=29 July 2010| archive-url= https://web.archive.org/web/20100729135045/http://lzip.nongnu.org/lzip.html| archive-date= 29 July 2010 | url-status= live}}</ref>
LZMA [[Data compression ratio|compression ratios]] tend to be very good. Compressed sizes are comparable to other high-gain compression formats, including [[RAR (file format)|RAR]] or [[ACE (file format)|ACE]], both of which are proprietary.


The native 7z file format is open and modular with all filenames stored as [[Unicode]].
The native 7z [[file format]] is open and [[Modular programming|modular]]. [[File name]]s are stored as [[UTF-16|Unicode]].<ref>{{cite web|url=https://www.7-zip.org/7z.html|title=7z Format|last=Pavlov|first=Igor|website=7-zip.org|access-date=16 April 2017}}</ref>


In 2011, [[TopTenReviews]] found that the 7z compression was at least 17% better than [[Zip (file format)|ZIP]],<ref>{{cite web|url=http://file-compression-software-review.toptenreviews.com/7-zip-review.html|title=7-Zip 2011 – TopTenREVIEWS|archive-url=https://web.archive.org/web/20121025200631/http://file-compression-software-review.toptenreviews.com/7-zip-review.html|archive-date=25 October 2012}}</ref> and 7-Zip's own site has since 2002 reported that while compression ratio results are very dependent upon the data used for the tests, "Usually, 7-Zip compresses to 7z format 30–70% better than to zip format, and 7-Zip compresses to zip format 2–10% better than most other zip-compatible programs."<ref>{{cite web|url=http://www.7-zip.org/ |title=7-Zip (home page) |archive-url=https://web.archive.org/web/20020121054121/http://www.7-zip.org/ |archive-date=21 January 2002 |url-status=live |website=7-zip.org |author=Igor Pavlov }} Statement on compression performance very similar in January 2002 and April 2017.</ref>
==Other supported formats==
7-Zip supports a number of other compression, and non-compression, archive formats. Supported formats include [[ZIP (file format)|ZIP]], Microsoft cabinet ([[Cabinet (file format)|CAB]]) files, [[RAR (file format)|RAR]], [[ARJ]], [[Z (file format)|Z]], [[gzip]], [[bzip2]], [[LHA (file format)|LHA]], [[tar (file format)|tar]], [[cpio]], [[RPM Package Manager|rpm]] and Debian [[deb (file format)|deb]] archives. Versions of 7-Zip from 4.42 onwards also support [[ISO image|ISO]] CD/DVD images.


The 7z file format specification is distributed with the program's source code, in the "doc" sub-directory.
It should be noted that the inclusion of some of these formats subjects the package to various terms and conditions that effectively make it [[non-free]]. (For example the inclusion of the proprietary [[RAR (file format)|RAR]] code.)


===Others===
7-Zip is able to open some [[Windows Installer|MSI]] files, allowing access to the meta-files within along with the main contents. Some Microsoft CAB ([[LZX (algorithm)|LZX]] compression) and [[Nullsoft Scriptable Install System|NSIS]] (LZMA) installer formats can be opened, making 7-Zip a good tool to check if a given binary file is in fact an archive.
7-Zip supports a number of other compression and non-compression archive formats (both for packing and unpacking), including [[ZIP (file format)|ZIP]], [[gzip]], [[bzip2]], [[XZ Utils|xz]], [[tar (file format)|tar]], and [[Windows Imaging Format|WIM]]. The utility also supports unpacking [[Apple Partition Map|APM]], [[Ar (Unix)|ar]], [[ARJ]], [[Microsoft Compiled HTML Help|chm]], [[cpio]], [[deb (file format)|deb]], [[Flash Video|FLV]], [[JAR (file format)|JAR]], [[LHA (file format)|LHA/LZH]], [[Lempel–Ziv–Markov chain algorithm|LZMA]], MSLZ, [[Office Open XML]], [[onepkg]], [[RAR (file format)|RAR]], [[RPM Package Manager|RPM]], [[smzip]], [[SWF]], [[Xar (archiver)|XAR]], and [[compress|Z]] archives and [[cramfs]], [[Apple Disk Image|DMG]], [[File Allocation Table|FAT]], [[Hierarchical File System (Apple)|HFS]], [[ISO image|ISO]], [[Master boot record|MBR]], [[NTFS]], [[SquashFS]], [[Universal Disk Format|UDF]], and [[Virtual Hard Disk|VHD]] [[disk image]]s. 7-Zip supports the ZIPX format for unpacking only. It has had this support since at least version 9.20, which was released in late 2010.


7-Zip can open some [[Windows Installer|MSI]] files, allowing access to the meta-files within along with the main contents. Some Microsoft CAB ([[LZX]] compression) and [[Nullsoft Scriptable Install System|NSIS]] (LZMA) installer formats can be opened. Similarly, some Microsoft executable programs (.[[EXE]]s) that are self-extracting archives or otherwise contain archived content (e.g., some setup files) may be opened as archives.
When compressing ZIP or gzip files, 7-Zip uses a home-brewed [[DEFLATE]] encoder which is often able to achieve higher compression levels than the more common DEFLATE implementation of [[zlib]], at the expense of compression speed. The 7-Zip deflate encoder implementation is available separately as part of the [[AdvanceCOMP]] suite of tools.


When compressing ZIP or gzip files, 7-Zip uses its own [[DEFLATE]] encoder, which may achieve higher compression, but at lower speed, than the more common [[zlib]] DEFLATE implementation. The 7-Zip deflate encoder implementation is available separately as part of the AdvanceCOMP suite of tools.
== Variations ==
In the form of [[p7zip]], the command-line version has been ported for use on [[Unix-like]] systems including [[Linux]], [[FreeBSD]] and [[Mac OS X]].


The decompression engine for [[RAR (file format)|RAR]] archives was developed using freely available source code of the unRAR program, which has a licensing restriction against creation of a RAR compressor. 7-Zip v15.06 and later support extraction of files in the RAR5 format.<ref>{{cite web|last1=Pavlov|first1=Igor|title=7-Zip 15.06 beta release notes|url=http://sourceforge.net/p/sevenzip/discussion/45797/thread/c611394e/#1783}}</ref> Some [[backup]] systems use formats supported by archiving programs such as 7-Zip; e.g., some [[Android (operating system)|Android]] backups are in <code>tar</code> format, and can be extracted by archivers such as 7-Zip.<ref>{{cite web|url=https://ajqi.com/how-to-extract-files-from-a-nandroid-backup/|title=How to extract files from a Nandroid Backup|author=Vijay|date=11 May 2013|website=AJQI|access-date=16 April 2017|archive-date=31 March 2017|archive-url=https://web.archive.org/web/20170331134328/http://ajqi.com/how-to-extract-files-from-a-nandroid-backup/|url-status=dead}}</ref>
A 64-bit version is available for [[Microsoft Windows#64-bit operating systems|x64 Editions of Windows]], with support for large memory maps leading to faster compression. All versions support multi-threading.


Some forks add more formats.
Two [[Command line interface|command line]] versions are provided: 7z.exe, using external libraries; and a [[Stand-alone|stand alone]] 7za.exe version which contains built-in modules. However, 7za's compression/decompression support is limited to [[7z]], [[ZIP (file format)|ZIP]], [[gzip]], [[bzip2]], [[Z (file format)|Z]] and [[tar (file format)|tar]] formats.


==File manager==
Additionally, a [[portable application|portable]] version of 7-Zip exists as well. It is packaged by [[PortableApps.com]] and is available from their site.<ref>[http://portableapps.com/apps/utilities/7-zip_portable 7-Zip Portable]</ref>
7-Zip comes with a file manager along with the standard archiver tools. The file manager has a toolbar with options to create an archive, extract an archive, test an archive to detect errors, copy, move, and delete files, and open a file properties menu exclusive to 7-Zip. The file manager, by default, displays hidden files because it does not follow [[Windows Explorer]]'s policies. The tabs show name, modification time, original and compressed sizes, attributes, and comments ([[4DOS]] <code>[[long filename#descript.ion|descript.ion]]</code> format).

When going up one directory on the root, all drives, removable or internal appear. Going up again shows a list with four options:
* '''Computer''': loads the drives list
* '''Documents''': loads user's documents, usually at <code>%UserProfile%\My Documents</code>
* '''Network''': loads a list of all network clients connected
* '''\\.''': Same as "Computer" except loads the drives in low-level [[filesystem]] access. This results in critical drive files and deleted files still existing on the drive to appear. (NOTE: As of November 2020, access to the active partition in low-level mode is not allowed for currently unknown reasons.)


==Features==
==Features==
7-Zip supports:
7-Zip supports many features, some which may not be found in popular commercial compression software.
* 32 and 64-bit x86, ARM64 architecture
* File Manager
* Encryption via the 256-bit [[Advanced Encryption Standard|AES]] cipher, which can be enabled for both files and the 7z hierarchy. When the hierarchy is encrypted, users are required to supply a [[password]] to see the filenames contained within the archive. WinZip-developed Zip file AES encryption standard is also available in 7-Zip to encrypt ZIP archives with AES 256-bit, but it does not offer filename encryption as in 7z archives.<ref>{{Cite web|url=https://www.winzip.com/aes_info.htm|title=AES Encryption Information: Encryption Specification AE-1 and AE-2|date=30 January 2009|website=[[WinZip]]}}</ref>
* Volumes of dynamically variable sizes, allowing use for backups on removable media such as writable CDs and DVDs
* Usability as a basic [[orthodox file manager]] when used in dual panel mode
* Multiple-core CPU threading<ref>{{cite web|last1=Atwood|first1=Jeff|title=File Compression in the Multi-Core Era|url=https://blog.codinghorror.com/file-compression-in-the-multi-core-era/|website=Coding Horror|date=28 February 2009 |access-date=4 August 2017}}</ref>
* Opening EXE files as archives, allowing the decompression of data from inside many "Setup" or "Installer" or "Extract" type programs without having to launch them
* Unpacking archives with corrupted filenames, renaming the files as required
* Create [[self-extracting archive|self-extracting single-volume archives]]
* Command-line interface<ref>[https://sevenzip.osdn.jp/chm/cmdline/syntax.htm "Command Line Syntax"]. sevenzip.osdn.jp.</ref>
* Graphical user interface. The Windows version comes with its own GUI; however, ''p7zip'' uses the GUI of the Unix/Linux Archive Manager.<ref>{{cite web|url=https://ubuntuforums.org/archive/index.php/t-782897.html|title=[ubuntu] GUI front end for 7-zip? [Archive] - Ubuntu Forums|website=ubuntuforums.org}}</ref>
* Calculating [[checksum]]s in the formats CRC-32, CRC-64, SHA-1, or SHA-256 for files on disk, available either via command line or Explorer's context menu<ref name="7zipHistory" />
* Available in 89 languages
* Ability to optionally record creation dates (<code>tc</code>) and last access dates (<code>ta</code>) in archives (in addition to modification dates).<ref>[http://sevenzip.osdn.jp:80/chm/cmdline/switches/method.htm -m (Set compression Method) switch]</ref>


==Versions==
* For [[encryption]], 7z archives support the 256-bit Rijndael [[Advanced Encryption Standard|AES]] cipher. Encryption can be enabled for both files and the 7z directory structure. When the directory structure is encrypted, users are required to supply a [[password]] to see the filenames contained within the archive. WinZip developed AES encryption standard is also available to encrypt ZIP archives but doesn't offer filenames encryption like 7z.<ref>[http://www.winzip.com/aes_info.htm AES Encryption Information: Encryption Specification AE-1 and AE-2]</ref>
Two [[Command-line interface|command-line]] versions are provided: 7z (7z.exe), using external libraries; and 7za (7za.exe), which is a standalone executable containing built-in modules, but with compression/decompression support limited to [[7z]], [[ZIP (file format)|ZIP]], [[gzip]], [[bzip2]], [[compress|Z]] and [[tar (file format)|tar]] formats. A 64-bit version is available, with support for large memory maps, leading to faster compression. All versions support multi-threading.
* 7-Zip flexibly supports [[Volume (compression)|volumes]] of dynamically variable sizes, useful for backups on removable media such as writable [[Compact Disc|CDs]] and [[DVD]]s.
* When in 2-panel mode, 7-Zip can be considered a basic [[orthodox file manager]].
* 7-Zip has the ability to unpack archives with corrupted filenames, renaming the files as required.
* Lets users make [[self-extracting archive]]s so that users who don't have the 7-Zip codec can still extract compressed files.


== Notes ==
=== Forks ===
* ''p7zip'' is a fork for [[Unix-like]] operating systems (including [[Linux]], [[FreeBSD]], and [[macOS]]), [[FreeDOS]], [[OpenVMS]], [[AmigaOS 4]], and [[MorphOS]]. It offers the 7za version only.<ref name="p7ziphome" />
* 7-zip ZS is a fork with [[Zstandard]] and various other compression algorithms added to the file format.<ref>{{cite web |title=Milkys Homepage - 7-Zip with support for Zstandard, Brotli, Lz4, Lz5 and Lizard Compression |url=https://mcmilk.de/projects/7-Zip-zstd/ |website=mcmilk.de}}</ref>
** ''p7zip-zstd'' (p7zip with zstd) is p7zip with ZS additions.<ref>{{cite web |title=p7zip-zstd |url=https://github.com/p7zip-project/p7zip |publisher=p7zip-project |date=4 May 2023}}</ref>
* ''NanaZip'' is a fork integrating changes from many sources, modernized for the [[Microsoft Store]].<ref>{{cite web |title=NanaZip: The 7-Zip derivative intended for the modern Windows experience |url=https://github.com/M2Team/NanaZip |publisher=M2-Team |date=6 May 2023}}</ref>


=== Plugins ===
{{reflist}}
7-zip comes with a plug-in system for expansion. The official "Links" page points to many plugins written by TC4Shell, providing extra file support.<ref>{{cite web |title=Links |url=https://7-zip.org/links.html |website=7-zip.org}}</ref>


==Software development kit==
==See also==
7-Zip has a [[LZMA]] [[Software development kit|SDK]] which was originally [[Dual licensing|dual-licensed]] under both the [[GNU Lesser General Public License|GNU LGPL]] and [[Common Public License]],<ref>{{cite web | url = http://sourceforge.net/projects/sevenzip/files/LZMA%20SDK/4.23/ | title = Browse /LZMA SDK/4.23 | access-date = 2014-02-12 | publisher = [[SourceForge]]}}</ref> with an additional special exception for linked binaries. On 2 December 2008, the SDK was [[Software relicensing|placed]] by Igor Pavlov in the [[public domain]].<ref name="LZMA_SDK">{{cite web|url=https://www.7-zip.org/sdk.html|title=LZMA SDK (Software Development Kit)|last=Pavlov|first=Igor|year=2013|access-date=16 June 2013}}</ref>


==Security==
{{portal|Free software|Free Software Portal Logo.svg}}
On older versions, self-extracting archives were vulnerable to [[arbitrary code execution]] through [[DLL hijacking]]: they load and run a DLL named UXTheme.dll, if it is in the same folder as the executable file.<ref>{{cite web|last1=Kanthak|first1=Stefan|title=Executable installers are vulnerable^WEVIL (case 7): 7z*.exe allows remote code execution with escalation of privilege|url=http://seclists.org/fulldisclosure/2015/Dec/34|website=SecLists.org|date=8 December 2015}}</ref><ref>{{cite web|last1=Kanthak|first1=Stefan|title=Executable installers are vulnerable^WEVIL (case 14): Rapid7's ScanNowUPnP.exe allows arbitrary (remote) code execution|url=http://seclists.org/fulldisclosure/2015/Dec/90|website=SecLists.org|date=22 December 2015}}</ref><ref>{{cite web|last1=Hart|first1=Jon|title=ScanNow DLL Search Order Hijacking Vulnerability and Deprecation|url=https://community.rapid7.com/community/infosec/blog/2015/12/21/scannow-dll-search-order-hijacking-vulnerability-and-deprecation|website=Rapid7.com|date=21 December 2015}}</ref> 7-Zip 16.03 Release notes say that the installer and SFX modules have added protection against DLL preloading attack.<ref name="7zipHistory" />


Versions of 7-Zip prior to 18.05 contain an [[arbitrary code execution]] vulnerability in the module for extracting files from [[RAR (file format)|RAR archives]] ({{CVE|2018-10115}}), a vulnerability that was fixed on 30 April 2018.<ref>{{cite web|url=https://www.cisecurity.org/advisory/a-vulnerability-in-7-zip-could-allow-for-arbitrary-code-execution_2018-049/|title=A Vulnerability in 7-Zip Could Allow for Arbitrary Code Execution|website=cisecurity.org|date=2018-05-01}}</ref>
*[[List of file archivers]]
*[[Comparison of file archivers]]


Versions prior to 23.0 also contained an [[arbitrary code execution]] vulnerability, fixed on 7 May 2023.<ref>{{cite web|url=https://www.zerodayinitiative.com/advisories/ZDI-23-1165|title=7-Zip 7Z File Parsing Integer Underflow Remote Code Execution Vulnerability|website=zerodayinitiative.com|date=2022-08-23}}</ref>
== External links ==


==Reception and usage==
* [http://www.7-zip.org/ 7-Zip website]
Snapfiles.com in 2012 rated 7-Zip 4.5 stars out of 5, noting, "[its] interface and additional features are fairly basic, but the compression ratio is outstanding".<ref>{{cite web|title=7-Zip file compression tool |publisher=WebAttack |work=Snapfiles.com |url=http://www.snapfiles.com/get/7zip.html |access-date=2012-10-12}}</ref>
* [http://sourceforge.net/projects/sevenzip/ 7-Zip's SourceForge project page]
* [http://portableapps.com/apps/utilities/7-zip_portable 7-Zip Portable]
* [http://www.worthinstalling.com/2006/03/7-zip-quality-opensource-compression.html A 7-Zip Review]


On [[TechRepublic]] in 2009, Justin James found the detailed settings for [[File Manager (Windows)|Windows File Manager]] integration were "appreciated" and called the compression-decompression benchmark utility "neat". And though the archive dialog has settings that "will confound most users", he concluded: "7-Zip fits a nice niche in between the built-in Windows capabilities and the features of the paid products, and it is able to handle a large variety of file formats in the process."<ref>{{cite web|url=https://www.techrepublic.com/blog/product-spotlight/review-7-zip-file-compression-application/|title=Review: 7-Zip file compression application|last=James|first=Justin|date=10 November 2009|website=[[TechRepublic]]|pages=1–2}}</ref>
{{Compression Software Implementations}}


Between 2002 and 2024, 7-Zip was downloaded 428 million times from [[SourceForge]] alone.<ref>[https://sourceforge.net/projects/sevenzip/files/stats/timeline?dates=2001-07-20+to+2024-02-01 7-zip file download stats] on [[SourceForge.net]] (February 2024)</ref>

The software has received awards, In 2007, SourceForge granted it community choice awards for "Technical Design" and for "Best Project".<ref name="7zipAward2007">{{cite web|url=https://sourceforge.net/blog/cca07/|title=SourceForge.net: 2007 Community Choice Awards|date=15 June 2007|website=[[SourceForge]]|archive-url=https://web.archive.org/web/20100326163008/http://sourceforge.net/blog/cca07/|archive-date=26 March 2010|url-status=live|access-date=16 April 2010}}</ref> In 2013, [[Tom's Hardware]] conducted a compression speed test comparing 7-ZIP, MagicRAR, [[WinRAR]], WinZip; they concluded that 7-ZIP beat out all the others with regards to compression speed, ratio, and size and awarded the software the 2013 Tom's Hardware Elite award.<ref>{{Cite web|last1=Masiero|first1=Manuel|last2=Roos|first2=Achim|date=19 March 2013|title=Compression Performance: 7-Zip, MagicRAR, WinRAR, WinZip|url=https://www.tomshardware.com/reviews/winrar-winzip-7-zip-magicrar,3436.html|access-date=2021-04-25|website=[[Tom's Hardware]]|language=en}}</ref>

==See also==
{{Portal|Free and open-source software}}
* [[Comparison of archive formats]]
* [[Comparison of file archivers]]
* [[List of archive formats]]

==References==
{{Reflist}}

==External links==
{{Commons category}}
* {{SourceForge|sevenzip|7-Zip}}
* [https://portableapps.com/apps/utilities/7-zip_portable 7-Zip Portable] at [[PortableApps.com]]
<!-- Discuss in Talk before adding anymore EL, especially dodgy mirrors-->

{{Compression software}}
{{FOSS}}

[[Category:1999 software]]
[[Category:Cross-platform free software]]
[[Category:Disk image extractors]]
[[Category:File archivers]]
[[Category:Free data compression software]]
[[Category:Free data compression software]]
[[Category:Free file managers]]
[[Category:Free file managers]]
[[Category:SourceForge projects]]
[[Category:Free multilingual software]]
[[Category:Free software programmed in C]]
[[Category:Free software programmed in C++]]
[[Category:Portable software]]
[[Category:Software using the LGPL license]]
[[Category:Windows compression software]]
[[Category:Windows compression software]]

[[ast:7-Zip]]
[[ca:7-Zip]]
[[cs:7-Zip]]
[[da:7-Zip]]
[[de:7-Zip]]
[[es:7-Zip]]
[[eo:7-Zip]]
[[fr:7-Zip]]
[[ko:7-Zip]]
[[it:7-Zip]]
[[ku:7-Zip]]
[[lt:7-Zip]]
[[hu:7-Zip]]
[[nl:7-Zip]]
[[ja:7-Zip]]
[[no:7-Zip]]
[[pl:7-Zip]]
[[pt:7-Zip]]
[[ru:7-Zip]]
[[sk:7-Zip]]
[[fi:7-Zip]]
[[sv:7-Zip]]
[[vi:7-Zip]]
[[zh:7-Zip]]

Latest revision as of 16:01, 27 July 2024

7-Zip
Developer(s)Igor Pavlov[1]
Initial release19 July 1999; 25 years ago (1999-07-19)[2]
Stable release24.08[3] Edit this on Wikidata (12 August 2024; 0 days ago (12 August 2024))
Preview release24.04 Beta (5 April 2024; 4 months ago (2024-04-05)) [±][4]
Repository
Written inAssembly, C and C++[5]
Operating systemWindows/ReactOS,[6] BSD, macOS, Linux,[7]
Size1.1–1.7 MB[8]
Available in89 languages[9]
List of languages

Afrikaans, Albanian, Arabic, Aragonese, Armenian, Asturian, Azerbaijani, Bangla, Bashkir, Basque, Belarusian, Breton, Bulgarian, Catalan, Chinese Simplified, Chinese Traditional, Corsican, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Extremaduran, Farsi, Finnish, French, Frisian, Friulian, Galician, Georgian, German, Greek, Gujarati, Indian, Hebrew, Hindi, Indian, Hungarian, Icelandic, Ido, Indonesian, Irish, Italian, Japanese, Kabyle, Karakalpak - Latin, Kazakh, Korean, Kurdish - Sorani, Kurdish, Kyrgyz, Latvian, Ligurian, Lithuanian, Macedonian, Malay, Marathi, Mongolian (MenkCode), Mongolian (Unicode), Mongolian, Nepali, Norwegian Bokmal, Norwegian Nynorsk, Pashto, Polish, Portuguese Brazilian, Portuguese Portugal, Punjabi, Indian, Romanian, Russian, Sanskrit, Indian, Serbian - Cyrillic, Serbian - Latin, Sinhala, Vietnam, Slovak, Slovenian, Spanish, Swedish, Tamil, Tatar, Thai, Turkish, Ukrainian, Uyghur, Uzbek, Valencian, Vietnamese, Welsh, Yoruba

These translations are partial and for the user interface only. Help and documentations are in English.

TypeFile archiver
LicenseLGPL-2.1-or-later with unRAR restriction[10] / LZMA SDK in the public domain[11]
Websitewww.7-zip.org Edit this on Wikidata

7-Zip is a free and open-source file archiver, a utility used to place groups of files within compressed containers known as "archives". It is developed by Igor Pavlov and was first released in 1999.[2] 7-Zip has its own archive format called 7z, but can read and write several others.

The program can be used from a Windows graphical user interface that also features shell integration, from a Windows command-line interface as the command 7za or 7za.exe, and from POSIX systems as p7zip.[12] Most of the 7-Zip source code is under the LGPL-2.1-or-later license; the unRAR code, however, is under the LGPL-2.1-or-later license with an "unRAR restriction", which states that developers are not permitted to use the code to reverse-engineer the RAR compression algorithm.[13][14]

Since version 21.01 alpha, preliminary Linux support has been added to the upstream instead of the p7zip project.[7]

Archive formats

[edit]

7z

[edit]

By default, 7-Zip creates 7z-format archives with a .7z file extension. Each archive can contain multiple directories and files. As a container format, security or size reduction are achieved by looking for similarities throughout the data using a stacked combination of filters. These can consist of pre-processors, compression algorithms, and encryption filters.

The core 7z compression uses a variety of algorithms, the most common of which are bzip2, PPMd, LZMA2, and LZMA. Developed by Pavlov, LZMA is a relatively new system, making its debut as part of the 7z format. LZMA uses an LZ-based sliding dictionary of up to 3840 MB in size, backed by a range coder.[15]

The native 7z file format is open and modular. File names are stored as Unicode.[16]

In 2011, TopTenReviews found that the 7z compression was at least 17% better than ZIP,[17] and 7-Zip's own site has since 2002 reported that while compression ratio results are very dependent upon the data used for the tests, "Usually, 7-Zip compresses to 7z format 30–70% better than to zip format, and 7-Zip compresses to zip format 2–10% better than most other zip-compatible programs."[18]

The 7z file format specification is distributed with the program's source code, in the "doc" sub-directory.

Others

[edit]

7-Zip supports a number of other compression and non-compression archive formats (both for packing and unpacking), including ZIP, gzip, bzip2, xz, tar, and WIM. The utility also supports unpacking APM, ar, ARJ, chm, cpio, deb, FLV, JAR, LHA/LZH, LZMA, MSLZ, Office Open XML, onepkg, RAR, RPM, smzip, SWF, XAR, and Z archives and cramfs, DMG, FAT, HFS, ISO, MBR, NTFS, SquashFS, UDF, and VHD disk images. 7-Zip supports the ZIPX format for unpacking only. It has had this support since at least version 9.20, which was released in late 2010.

7-Zip can open some MSI files, allowing access to the meta-files within along with the main contents. Some Microsoft CAB (LZX compression) and NSIS (LZMA) installer formats can be opened. Similarly, some Microsoft executable programs (.EXEs) that are self-extracting archives or otherwise contain archived content (e.g., some setup files) may be opened as archives.

When compressing ZIP or gzip files, 7-Zip uses its own DEFLATE encoder, which may achieve higher compression, but at lower speed, than the more common zlib DEFLATE implementation. The 7-Zip deflate encoder implementation is available separately as part of the AdvanceCOMP suite of tools.

The decompression engine for RAR archives was developed using freely available source code of the unRAR program, which has a licensing restriction against creation of a RAR compressor. 7-Zip v15.06 and later support extraction of files in the RAR5 format.[19] Some backup systems use formats supported by archiving programs such as 7-Zip; e.g., some Android backups are in tar format, and can be extracted by archivers such as 7-Zip.[20]

Some forks add more formats.

File manager

[edit]

7-Zip comes with a file manager along with the standard archiver tools. The file manager has a toolbar with options to create an archive, extract an archive, test an archive to detect errors, copy, move, and delete files, and open a file properties menu exclusive to 7-Zip. The file manager, by default, displays hidden files because it does not follow Windows Explorer's policies. The tabs show name, modification time, original and compressed sizes, attributes, and comments (4DOS descript.ion format).

When going up one directory on the root, all drives, removable or internal appear. Going up again shows a list with four options:

  • Computer: loads the drives list
  • Documents: loads user's documents, usually at %UserProfile%\My Documents
  • Network: loads a list of all network clients connected
  • \\.: Same as "Computer" except loads the drives in low-level filesystem access. This results in critical drive files and deleted files still existing on the drive to appear. (NOTE: As of November 2020, access to the active partition in low-level mode is not allowed for currently unknown reasons.)

Features

[edit]

7-Zip supports:

  • 32 and 64-bit x86, ARM64 architecture
  • File Manager
  • Encryption via the 256-bit AES cipher, which can be enabled for both files and the 7z hierarchy. When the hierarchy is encrypted, users are required to supply a password to see the filenames contained within the archive. WinZip-developed Zip file AES encryption standard is also available in 7-Zip to encrypt ZIP archives with AES 256-bit, but it does not offer filename encryption as in 7z archives.[21]
  • Volumes of dynamically variable sizes, allowing use for backups on removable media such as writable CDs and DVDs
  • Usability as a basic orthodox file manager when used in dual panel mode
  • Multiple-core CPU threading[22]
  • Opening EXE files as archives, allowing the decompression of data from inside many "Setup" or "Installer" or "Extract" type programs without having to launch them
  • Unpacking archives with corrupted filenames, renaming the files as required
  • Create self-extracting single-volume archives
  • Command-line interface[23]
  • Graphical user interface. The Windows version comes with its own GUI; however, p7zip uses the GUI of the Unix/Linux Archive Manager.[24]
  • Calculating checksums in the formats CRC-32, CRC-64, SHA-1, or SHA-256 for files on disk, available either via command line or Explorer's context menu[2]
  • Available in 89 languages
  • Ability to optionally record creation dates (tc) and last access dates (ta) in archives (in addition to modification dates).[25]

Versions

[edit]

Two command-line versions are provided: 7z (7z.exe), using external libraries; and 7za (7za.exe), which is a standalone executable containing built-in modules, but with compression/decompression support limited to 7z, ZIP, gzip, bzip2, Z and tar formats. A 64-bit version is available, with support for large memory maps, leading to faster compression. All versions support multi-threading.

Forks

[edit]

Plugins

[edit]

7-zip comes with a plug-in system for expansion. The official "Links" page points to many plugins written by TC4Shell, providing extra file support.[29]

Software development kit

[edit]

7-Zip has a LZMA SDK which was originally dual-licensed under both the GNU LGPL and Common Public License,[30] with an additional special exception for linked binaries. On 2 December 2008, the SDK was placed by Igor Pavlov in the public domain.[11]

Security

[edit]

On older versions, self-extracting archives were vulnerable to arbitrary code execution through DLL hijacking: they load and run a DLL named UXTheme.dll, if it is in the same folder as the executable file.[31][32][33] 7-Zip 16.03 Release notes say that the installer and SFX modules have added protection against DLL preloading attack.[2]

Versions of 7-Zip prior to 18.05 contain an arbitrary code execution vulnerability in the module for extracting files from RAR archives (CVE-2018-10115), a vulnerability that was fixed on 30 April 2018.[34]

Versions prior to 23.0 also contained an arbitrary code execution vulnerability, fixed on 7 May 2023.[35]

Reception and usage

[edit]

Snapfiles.com in 2012 rated 7-Zip 4.5 stars out of 5, noting, "[its] interface and additional features are fairly basic, but the compression ratio is outstanding".[36]

On TechRepublic in 2009, Justin James found the detailed settings for Windows File Manager integration were "appreciated" and called the compression-decompression benchmark utility "neat". And though the archive dialog has settings that "will confound most users", he concluded: "7-Zip fits a nice niche in between the built-in Windows capabilities and the features of the paid products, and it is able to handle a large variety of file formats in the process."[37]

Between 2002 and 2024, 7-Zip was downloaded 428 million times from SourceForge alone.[38]

The software has received awards, In 2007, SourceForge granted it community choice awards for "Technical Design" and for "Best Project".[39] In 2013, Tom's Hardware conducted a compression speed test comparing 7-ZIP, MagicRAR, WinRAR, WinZip; they concluded that 7-ZIP beat out all the others with regards to compression speed, ratio, and size and awarded the software the 2013 Tom's Hardware Elite award.[40]

See also

[edit]

References

[edit]
  1. ^ "A Few Questions for Igor Pavlov". Dr. Dobb's Data Compression Newsletter. 30 April 2003. Retrieved 28 March 2023.
  2. ^ a b c d "History of 7-zip changes". 7-Zip 20.02 alpha. 8 August 2020. Retrieved 8 August 2020.
  3. ^ "HISTORY of the 7-Zip". Retrieved 12 August 2024.
  4. ^ "History of 7-zip changes". 7-Zip. 5 April 2024. Retrieved 5 April 2024.
  5. ^ "P7ZIP SourceForge". SourceForge.net. January 2016. Retrieved 7 March 2016.
  6. ^ "Tests for ReactOS 0.4.14".
  7. ^ a b Larabel, Michael (12 March 2021). "Upstream 7-Zip Adds Preliminary Linux Support". Phoronix. Retrieved 17 March 2021.
  8. ^ "7-Zip - Browse /7-Zip/16.00". SourceForge.net. Slashdot Media. 10 April 2016. Retrieved 12 May 2016.
  9. ^ Options... dialog box of 7-Zip for Windows 21.00 alpha
  10. ^ Pavlov, Igor (2010). "7-Zip License for use and distribution". 7-zip.org/. Archived from the original on 10 April 2010. Retrieved 16 April 2010.
  11. ^ a b Pavlov, Igor (2013). "LZMA SDK (Software Development Kit)". Retrieved 16 June 2013.
  12. ^ a b "P7ZIP". GitHub. July 2022. Retrieved 6 July 2022.
  13. ^ Pavlov, Igor. "7-Zip". 7-zip.org. Retrieved 31 October 2012.
  14. ^ Pavlov, Igor. "7-Zip – License for use and distribution". 7-zip.org. Retrieved 31 October 2012.
  15. ^ Diaz, Antonio Diaz. "Lzip". LZip.NonGNU.org. Archived from the original on 29 July 2010. Retrieved 29 July 2010.
  16. ^ Pavlov, Igor. "7z Format". 7-zip.org. Retrieved 16 April 2017.
  17. ^ "7-Zip 2011 – TopTenREVIEWS". Archived from the original on 25 October 2012.
  18. ^ Igor Pavlov. "7-Zip (home page)". 7-zip.org. Archived from the original on 21 January 2002. Statement on compression performance very similar in January 2002 and April 2017.
  19. ^ Pavlov, Igor. "7-Zip 15.06 beta release notes".
  20. ^ Vijay (11 May 2013). "How to extract files from a Nandroid Backup". AJQI. Archived from the original on 31 March 2017. Retrieved 16 April 2017.
  21. ^ "AES Encryption Information: Encryption Specification AE-1 and AE-2". WinZip. 30 January 2009.
  22. ^ Atwood, Jeff (28 February 2009). "File Compression in the Multi-Core Era". Coding Horror. Retrieved 4 August 2017.
  23. ^ "Command Line Syntax". sevenzip.osdn.jp.
  24. ^ "[ubuntu] GUI front end for 7-zip? [Archive] - Ubuntu Forums". ubuntuforums.org.
  25. ^ -m (Set compression Method) switch
  26. ^ "Milkys Homepage - 7-Zip with support for Zstandard, Brotli, Lz4, Lz5 and Lizard Compression". mcmilk.de.
  27. ^ "p7zip-zstd". p7zip-project. 4 May 2023.
  28. ^ "NanaZip: The 7-Zip derivative intended for the modern Windows experience". M2-Team. 6 May 2023.
  29. ^ "Links". 7-zip.org.
  30. ^ "Browse /LZMA SDK/4.23". SourceForge. Retrieved 12 February 2014.
  31. ^ Kanthak, Stefan (8 December 2015). "Executable installers are vulnerable^WEVIL (case 7): 7z*.exe allows remote code execution with escalation of privilege". SecLists.org.
  32. ^ Kanthak, Stefan (22 December 2015). "Executable installers are vulnerable^WEVIL (case 14): Rapid7's ScanNowUPnP.exe allows arbitrary (remote) code execution". SecLists.org.
  33. ^ Hart, Jon (21 December 2015). "ScanNow DLL Search Order Hijacking Vulnerability and Deprecation". Rapid7.com.
  34. ^ "A Vulnerability in 7-Zip Could Allow for Arbitrary Code Execution". cisecurity.org. 1 May 2018.
  35. ^ "7-Zip 7Z File Parsing Integer Underflow Remote Code Execution Vulnerability". zerodayinitiative.com. 23 August 2022.
  36. ^ "7-Zip file compression tool". Snapfiles.com. WebAttack. Retrieved 12 October 2012.
  37. ^ James, Justin (10 November 2009). "Review: 7-Zip file compression application". TechRepublic. pp. 1–2.
  38. ^ 7-zip file download stats on SourceForge.net (February 2024)
  39. ^ "SourceForge.net: 2007 Community Choice Awards". SourceForge. 15 June 2007. Archived from the original on 26 March 2010. Retrieved 16 April 2010.
  40. ^ Masiero, Manuel; Roos, Achim (19 March 2013). "Compression Performance: 7-Zip, MagicRAR, WinRAR, WinZip". Tom's Hardware. Retrieved 25 April 2021.
[edit]