{"id":28526,"date":"2026-02-24T10:32:23","date_gmt":"2026-02-24T09:32:23","guid":{"rendered":"https:\/\/contabo.com\/blog\/?p=28526"},"modified":"2026-03-19T14:54:43","modified_gmt":"2026-03-19T13:54:43","slug":"linux-unzip-command-guide","status":"publish","type":"post","link":"https:\/\/contabo.com\/blog\/linux-unzip-command-guide\/","title":{"rendered":"Linux Unzip Command: Extract Zip Files With Examples"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"630\" src=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1.webp\" alt=\"\" class=\"wp-image-28574\" srcset=\"https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1.webp 1200w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1-600x315.webp 600w, https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1-768x403.webp 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n<p>You&#8217;ve downloaded a .zip file to your server. Now what? On most Linux systems, double-clicking isn&#8217;t an option. The unzip command is how you crack open zip archives from the terminal, and unlike tar or gzip, it doesn&#8217;t come pre-installed on every distro.<\/p>\n\n\n\n<p>That distinction matters. Plenty of sysadmins SSH into a fresh VPS, type unzip, and get slapped with &#8220;command not found.&#8221; It&#8217;s a rite of passage, really. The utility handles zip file extraction with a set of options that cover everything from basic one-file unpacking to selective extraction with pattern matching and password-protected archives.<\/p>\n\n\n\n<p>This guide walks through installation, everyday extraction tasks, scripting, and the gotchas that trip people up. We&#8217;ll also compare unzip against tar and gzip so you know when to reach for which tool.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-install-unzip-on-linux\">How to Install Unzip on Linux<\/h2>\n\n\n\n<p>Before you can extract anything, you need the utility installed. The process depends on your distro&#8217;s package manager.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-debian-and-ubuntu\">Debian and Ubuntu<\/h3>\n\n\n\n<p>On Debian-based systems like Ubuntu and Linux Mint, APT handles everything. Update your package index first to make sure you&#8217;re pulling the latest version:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt upgrade<\/code><\/pre>\n\n\n\n<p>Then install unzip:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install unzip<\/code><\/pre>\n\n\n\n<p>On older releases that haven&#8217;t switched to the new apt syntax, you might need <code>apt-get install unzip<\/code> instead. Same result, older syntax. Both pull from the same repos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-centos-almalinux-and-rocky-linux\">CentOS, AlmaLinux, and Rocky Linux<\/h3>\n\n\n\n<p>RHEL derivatives split between two package managers depending on version. CentOS 7 and older use <code>yum<\/code>. CentOS Stream 8+, AlmaLinux, and Rocky Linux use <code>dnf<\/code>. The commands look nearly identical:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo yum install unzip<\/code><\/pre>\n\n\n\n<p>Or on newer systems:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo dnf install unzip<\/code><\/pre>\n\n\n\n<p>Either way, update your repos first with <code>yum update<\/code> or <code>dnf update<\/code>. On a minimal server install, unzip almost certainly isn&#8217;t there. That&#8217;s true for both container images and fresh VM deployments, so budget an extra thirty seconds during provisioning.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-verify-the-installation\">Verify the Installation<\/h3>\n\n\n\n<p>Run this regardless of distro:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip -v<\/code><\/pre>\n\n\n\n<p>If it prints a version number and build info, you&#8217;re set. If it prints nothing useful, something went wrong with the install.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-zip-and-unzip-files-in-linux\">How to Zip and Unzip Files in Linux<\/h2>\n\n\n\n<p>With unzip installed, you can start extracting. The following sections cover the most common scenarios you&#8217;ll hit in day-to-day work.<\/p>\n\n\n\n<p><strong>Heads up: <\/strong>Your filesystem&#8217;s size limits can reject large extractions silently. If unzip throws an error on a big archive, check your disk space and inode limits before blaming the tool.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-to-unzip-a-file-in-linux\">How to Unzip a File in Linux<\/h3>\n\n\n\n<p>The basic syntax is dead simple. Navigate to the directory containing your archive and run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip archive_file.zip<\/code><\/pre>\n\n\n\n<p>That dumps everything into your current working directory. You need read-write permissions on that directory, obviously. If permissions are wrong, you&#8217;ll get a stream of &#8220;permission denied&#8221; errors and nothing gets extracted.<\/p>\n\n\n\n<p>If the archive lives somewhere else, pass the full path:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip \/home\/user\/downloads\/archive_file.zip<\/code><\/pre>\n\n\n\n<p>The extracted files still land in your current directory, not the archive&#8217;s directory. That trips people up constantly. You downloaded it to \/tmp but you&#8217;re sitting in \/root? Congrats, your root home directory now has a bunch of unexpected files in it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-how-to-unzip-multiple-files-at-once\">How to Unzip Multiple Files at Once<\/h3>\n\n\n\n<p>Got a folder full of zip files? Use a wildcard:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip '*.zip'<\/code><\/pre>\n\n\n\n<p>The quotes matter. Without them, your shell tries to expand the glob before unzip sees it, which leads to weird errors when you&#8217;ve got more than one archive. Bash and zsh both do this, and the error messages aren&#8217;t helpful at all.<\/p>\n\n\n\n<p>If the files share a naming pattern like backup-1.zip, backup-2.zip, narrow it down:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip 'backup-*.zip'<\/code><\/pre>\n\n\n\n<p>Some shells also need a backslash escape instead of quotes. If one method fails, try the other. It&#8217;s one of those &#8220;works on my machine&#8221; things that depends on your shell configuration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-unzip-to-a-specific-directory-in-linux\">Unzip to a Specific Directory in Linux<\/h3>\n\n\n\n<p>The <code>-d<\/code> flag lets you extract to a target folder without cd-ing around:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip archive_file.zip -d \/target\/folder\/destination<\/code><\/pre>\n\n\n\n<p>The path can be absolute or relative. If the target directory doesn&#8217;t exist, unzip creates it for you. This is one of the most-used options because it keeps your working directory clean and puts files exactly where you want them.<\/p>\n\n\n\n<p>You can even combine source and destination paths in a single command, pulling from one place and dropping into another:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip \/origin\/path\/archive_file.zip -d \/target\/folder\/destination<\/code><\/pre>\n\n\n\n<p>No need to move anywhere. Run it from wherever you are. On a server with dozens of directories and a complex folder structure, this saves a surprising amount of time.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-extract-specific-files-from-a-zip-archive\">Extract Specific Files From a Zip Archive<\/h3>\n\n\n\n<p>A zip archive usually contains dozens of files. You don&#8217;t always need all of them. Extract a single file by naming it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip file_archive.zip file1.txt<\/code><\/pre>\n\n\n\n<p>Extract a specific folder the same way:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip file_archive.zip folder_name\/<\/code><\/pre>\n\n\n\n<p>For nested items, provide the full path within the archive:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip file_archive.zip directory\/path\/target_file.txt<\/code><\/pre>\n\n\n\n<p>Need everything except a few files? The <code>-x<\/code> flag excludes items:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip file_archive.zip -x file_1.txt file_2.txt<\/code><\/pre>\n\n\n\n<p>This is useful when an archive contains a config file you&#8217;ve already customized and don&#8217;t want overwritten. Or when you&#8217;re doing a partial update and only need specific pieces from a large deployment package. Server administrators use this pattern constantly when archives contain dozens or hundreds of files but only a handful are relevant.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-unzip-a-password-protected-zip-file\">Unzip a Password-Protected Zip File<\/h3>\n\n\n\n<p>If you try to extract an encrypted zip without providing a password, the terminal prompts you for one. You can type it there, but for scripting, that&#8217;s useless. The <code>-P<\/code> flag (capital P) passes the password inline:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip -P yourpassword file_archive.zip<\/code><\/pre>\n\n\n\n<p><strong>Security warning: <\/strong>This exposes the password in your shell history and process list. On a shared server, anyone running ps aux can see it. Fine for automated pipelines on isolated machines. Terrible for multi-user systems.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-using-unzip-in-bash-automation-scripts\">Using Unzip in Bash Automation Scripts<\/h3>\n\n\n\n<p>Admins who deal with recurring zip files (backups, log exports, data dumps) shouldn&#8217;t run unzip by hand every time. That&#8217;s what scripts are for. Wrap the extraction logic in a bash file, add some cleanup logic, and you&#8217;ve got something that runs unattended.<\/p>\n\n\n\n<p>Here&#8217;s a practical example that extracts a log archive and rotates old logs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\nlog_archive=\"\/path\/to\/logs\/log_archive.zip\"\nlog_destination=\"\/path\/to\/extracted\/logs\/\"\nmax_logs=5\n\nunzip \"$log_archive\" -d \"$log_destination\"\n\ncd \"$log_destination\" || exit\nlog_files=($(ls -1t *.log))\n\nif &#91; ${#log_files&#91;@]} -gt $max_logs ]; then\n&nbsp; excess_logs=$(( ${#log_files&#91;@]} - max_logs ))\n&nbsp; for ((i = 0; i &lt; excess_logs; i++)); do\n&nbsp; &nbsp; rm \"${log_files&#91;$i]}\"\n&nbsp; done\nfi<\/code><\/pre>\n\n\n\n<p>Save it as unzip_log.sh, make it executable with <code>chmod +x unzip_log.sh<\/code>, and run it. To automate daily extraction, add a cron job:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0 2 * * * \/path\/to\/unzip_log.sh<\/code><\/pre>\n\n\n\n<p>That fires the script at 2 AM every day. Adjust the schedule to match your log rotation needs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-combine-unzip-with-other-linux-commands\">Combine Unzip With Other Linux Commands<\/h3>\n\n\n\n<p>Linux shines when you chain commands together. The unzip utility is no exception. Piping output between tools lets you build extraction workflows that handle complex scenarios in a single line.<\/p>\n\n\n\n<p>Find and extract every zip file in a directory tree:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>find \/path\/to\/zips -type f -name '*.zip' -exec unzip {} -d \/path\/to\/destination\/ \\;<\/code><\/pre>\n\n\n\n<p>Extract only files matching a pattern from an archive using <code>grep <\/code>and <code>awk<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip archive.zip $(unzip -l archive.zip | grep 'pattern' | awk '{print $4}')<\/code><\/pre>\n\n\n\n<p>What&#8217;s happening here: unzip <code>-l<\/code> lists the archive contents, <code>grep <\/code>filters by your pattern, <code>awk <\/code>grabs the filename column, and the outer unzip extracts those specific files. It&#8217;s ugly, it works, and you&#8217;ll use it more often than you&#8217;d expect.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-unzip-vs-tar-and-gzip-key-differences\">Unzip vs Tar and Gzip: Key Differences<\/h2>\n\n\n\n<p>Linux has multiple archive and compression formats. The main ones you&#8217;ll encounter are <code>.zip<\/code>, <code>.tar<\/code>, <code>.tar.gz<\/code> (or <code>.tgz<\/code>), and <code>.gz<\/code>. They&#8217;re not interchangeable, and picking the wrong tool wastes time.<\/p>\n\n\n\n<p>The zip format bundles files and compresses them in one step. It supports password protection natively and works on Windows, macOS, and Linux without extra software. That cross-platform compatibility is why zip files are still everywhere, especially when someone on a Windows machine sends you something.<\/p>\n\n\n\n<p>Tar, by contrast, only archives. It bundles files into a single .tar file without compression. You pipe it through gzip to get a <code>.tar.gz<\/code>, which then compresses the whole bundle. Two steps, two tools. The compression ratio tends to be better than zip because gzip sees the entire archive as one stream rather than compressing each file individually. To extract:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tar -xf archive.tar\ngunzip archive.tar.gz<\/code><\/pre>\n\n\n\n<p>On Linux servers, <code>.tar.gz<\/code> dominates. Most source code packages, config backups, and installation bundles ship in that format because tar and gzip come pre-installed everywhere. The zip format requires installing unzip first, which is a small annoyance but a real one when you&#8217;re provisioning machines at scale or building container images where every added package increases the image size.<\/p>\n\n\n\n<p>For desktop Linux, GUI tools like PeaZip handle all formats through a point-and-click interface. Convenient for personal use, but you can&#8217;t script a GUI. Stick with command-line tools for anything that needs to be repeatable or automated.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-best-practices-for-managing-zip-files\">Best Practices for Managing Zip Files<\/h2>\n\n\n\n<p>Extracting files is easy. Extracting them safely and without breaking things takes a little more thought.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-check-archive-file-integrity\">Check Archive File Integrity<\/h3>\n\n\n\n<p>Don&#8217;t blindly extract archives, especially ones downloaded from the internet. Malicious zip files exist, and they can contain anything from malware to zip bombs that eat all your disk space. A zip bomb is a small archive that expands into petabytes of data. Your server runs out of disk space, services crash, and you spend the next hour cleaning up.<\/p>\n\n\n\n<p>First, list the contents without extracting:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip -l downloaded_file.zip<\/code><\/pre>\n\n\n\n<p>Scan the filenames. Anything suspicious (executables you didn&#8217;t expect, paths that try to escape the directory with ..\/, or files with absurdly large uncompressed sizes) is a red flag.<\/p>\n\n\n\n<p>Verify the checksum against the source:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>md5sum downloaded_file.zip<\/code><\/pre>\n\n\n\n<p>Compare the output to whatever checksum the download page provides. If they don&#8217;t match, the file was corrupted or tampered with during transfer.<\/p>\n\n\n\n<p>You can also test the archive&#8217;s structural integrity:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip -t downloaded_file.zip<\/code><\/pre>\n\n\n\n<p>This runs through the zip without actually writing files. If anything&#8217;s broken inside, it&#8217;ll tell you.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-preserve-existing-files-and-permissions\">Preserve Existing Files and Permissions<\/h3>\n\n\n\n<p>The default behavior of unzip overwrites files with matching names. On a production server, that can ruin your day in about two seconds. Imagine extracting a config archive that silently replaces your carefully tuned nginx.conf with a default version. The <code>-n<\/code> flag prevents it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip -n archive.zip<\/code><\/pre>\n\n\n\n<p>With <code>-n<\/code>, existing files stay untouched. The extraction skips any file that already exists in the target directory. No confirmation prompts, no drama. This is the flag you want when doing partial updates or restoring specific files from a backup.<\/p>\n\n\n\n<p>File permissions are the other thing that goes wrong. Your archive might contain files with permissions set to 777 (wide open) or 000 (locked out entirely). If preserving the original permissions matters, use <code>-o<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unzip -o archive.zip<\/code><\/pre>\n\n\n\n<p>This keeps whatever permissions the files had when they were zipped. Whether that&#8217;s good or bad depends on who created the archive and how security-conscious they were. Always review permissions after extraction on anything facing the public internet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-faq-linux-unzip-command\">FAQ: Linux Unzip Command<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1773928437096\"><strong class=\"schema-faq-question\">How do I unzip a file in Linux terminal?<\/strong> <p class=\"schema-faq-answer\">Run unzip <code>filename.zip<\/code> and the contents extract to your current directory. If you want them somewhere else, add &#8211;<code>d \/target\/path<\/code> to specify the destination. That&#8217;s the entire workflow for 90% of use cases. If the file is password-protected, add <code>-P<\/code> followed by the password before the filename.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928450030\"><strong class=\"schema-faq-question\">How do I install unzip on Ubuntu?<\/strong> <p class=\"schema-faq-answer\">Two commands: <code>sudo apt<\/code> <code>update<\/code> to refresh your package list, then<code>sudo apt install unzip<\/code> to install the utility. Takes about five seconds on a decent connection. Verify with <code>unzip -v<\/code> to confirm it&#8217;s working.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928458490\"><strong class=\"schema-faq-question\">What is the difference between unzip and tar?<\/strong> <p class=\"schema-faq-answer\">Unzip handles <code>.zip<\/code> files, which bundle and compress in a single format with optional password protection. Tar archives files without compressing them; you need gzip or bzip2 on top of tar for compression. Zip is more portable across operating systems since Windows handles it natively. Tar is more common on Linux servers because tar and gzip ship with every distro. The compression ratio with tar.gz tends to be slightly better since gzip compresses the archive as a single stream.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1773928466418\"><strong class=\"schema-faq-question\">How to unzip files to a specific folder?<\/strong> <p class=\"schema-faq-answer\">Use the <code>-d<\/code> option: <code>unzip archive.zip -d \/target\/path<\/code>. The directory gets created if it doesn&#8217;t exist. Works with both absolute and relative paths. You can combine it with a source path too, so <code>unzip \/downloads\/file.zip -d \/var\/www\/html<\/code> extracts from one location into another without any cd commands.<\/p> <\/div> <\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-wrapping-up\">Wrapping Up<\/h2>\n\n\n\n<p>The unzip command does one thing and does it well: it cracks open zip archives on Linux. Install it through your distro&#8217;s package manager (apt, yum, or dnf), learn the <code>-d<\/code>, <code>-n<\/code>, and <code>-l<\/code> flags, and you&#8217;ve covered 95% of real-world scenarios. Most of what you&#8217;ll do with unzip fits into a single line.<\/p>\n\n\n\n<p>For anything more complex (batch extraction across directory trees, log rotation, pattern-based filtering) wrap unzip in a bash script and schedule it with cron. Chain it with find and grep for workflows that would take forever to do manually.<\/p>\n\n\n\n<p>And always, always check archive integrity before extracting files from untrusted sources. List the contents with <code>-l<\/code>, verify the checksum with <code>md5sum<\/code>, and test with <code>-t<\/code>. It takes ten extra seconds and prevents the kind of incidents that generate incident reports. Your future self will thank you.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You&#8217;ve downloaded a .zip file to your server. Now what? On most Linux systems, double-clicking isn&#8217;t an option. The unzip command is how you crack open zip archives from the terminal, and unlike tar or gzip, it doesn&#8217;t come pre-installed on every distro. That distinction matters. Plenty of sysadmins SSH into a fresh VPS, type [&hellip;]<\/p>\n","protected":false},"author":44,"featured_media":28574,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[18],"tags":[],"ppma_author":[3402],"class_list":["post-28526","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"uagb_featured_image_src":{"full":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1.webp",1200,630,false],"thumbnail":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1-150x150.webp",150,150,true],"medium":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1-600x315.webp",600,315,true],"medium_large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1-768x403.webp",768,403,true],"large":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1.webp",1200,630,false],"1536x1536":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1.webp",1200,630,false],"2048x2048":["https:\/\/contabo.com\/blog\/wp-content\/uploads\/2026\/02\/blog-head_tutorial-linux-unzip-command-1.webp",1200,630,false]},"uagb_author_info":{"display_name":"Milan Ivanovic","author_link":"https:\/\/contabo.com\/blog\/author\/milan\/"},"uagb_comment_info":0,"uagb_excerpt":"You&#8217;ve downloaded a .zip file to your server. Now what? On most Linux systems, double-clicking isn&#8217;t an option. The unzip command is how you crack open zip archives from the terminal, and unlike tar or gzip, it doesn&#8217;t come pre-installed on every distro. That distinction matters. Plenty of sysadmins SSH into a fresh VPS, type&hellip;","authors":[{"term_id":3402,"user_id":0,"is_guest":1,"slug":"contabro","display_name":"ContaBro","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts\/28526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/users\/44"}],"replies":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/comments?post=28526"}],"version-history":[{"count":8,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts\/28526\/revisions"}],"predecessor-version":[{"id":29542,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/posts\/28526\/revisions\/29542"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/media\/28574"}],"wp:attachment":[{"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/media?parent=28526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/categories?post=28526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/tags?post=28526"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/contabo.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=28526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}