Coding/Learn/bash/bash creating extracting compressed files
Bash Shell & CLI Automation Complete Course
01.What Bash Is & Shell Architecture
02.Terminal and Shell Basics
03.Running Commands & PATH Resolution
04.Command Structure: Options, Flags & Arguments
05.Getting Help with Commands: man, info & --help
06.Basic Filesystem Navigation & Directory Hierarchy
07.Listing Files with ls & Options
08.Changing Directories with cd
09.Current Directory: pwd & $PWD Variable
10.Creating Files: touch, Redirection & Here-Docs
11.Creating Directories with mkdir & Nested Parents
12.Copying Files and Directories with cp
13.Moving and Renaming Files with mv
14.Removing Files and Directories with rm & rmdir
15.Viewing File Contents: cat, less, more, head & tail
16.Command Aliases: alias, unalias & Persistence
17.Searching Text with grep & ripgrep
18.Pattern Matching: Regex & Extended Globs
19.Processing Columns & Structured Data with awk
20.Editing Text Streams with sed
21.Extracting Sections with cut, paste & tr
22.Sorting and Deduplication with sort & uniq
23.Viewing Beginning & End: head, tail & wc
24.Understanding Linux Processes & PID Lifecycle
25.Process Monitoring: top, htop & Background Jobs
26.Monitoring Disk Space with df
27.Directory Size Analysis with du & ncdu
28.Monitoring Memory Usage with free & /proc/meminfo
29.Terminating Processes: kill, killall, pkill & Signals
30.System Uptime, Load & Reboot History
31.Testing Connectivity: ping, nc, traceroute & nslookup
32.Making HTTP Requests with curl
33.Downloading Files with wget & curl -O
34.Remote SSH Connections: ssh, Keys & Config
35.Secure File Transfer with scp & sftp
36.File Synchronization with rsync
37.Creating and Managing ZIP Files
38.Extracting Archives: unzip & Safe Decompression
39.TAR Archives: Tape Archive Basics (tar -cvf, -tvf, -xvf)
40.Creating and Extracting Compressed Files (.tar.gz, .tar.bz2, .tar.xz)
41.Users and Groups: /etc/passwd, /etc/group & id
42.File Ownership: User Owner, Group Owner & Inodes
43.Read, Write & Execute Permissions: Files vs Directories
44.Changing Permissions with chmod: Symbolic & Octal Modes
45.Changing Ownership with chown
46.Changing Groups with chgrp & SetGID Inheritance
47.Script Structure & Strict Mode (set -euo pipefail)
48.The Shebang (#!) & Interpreter Portability
49.Variables: Declaration, Scope & Parameter Expansion
50.Data Types, Typeset & Declare Attributes
51.Operators: Arithmetic, String & Logical Operators
52.Handling User Input: read, Prompts & Secret Masking
53.Conditional Branching: if, elif, else & case Statements
54.Loops: for, while, until & Loop Control (break, continue)
55.Functions: Declarations, Local Scope & Return Values
56.Arrays: Indexed Arrays, Associative Maps & Slicing
57.Exit Codes ($?), Error Handling & Custom Exits
58.Scheduling with Cron & Crontab Automation
59.Combining Commands: Semicolons (;), &&, || & Subshells
60.Pipes (|), Pipefail & Process Pipelines
61.I/O Redirection: >, >>, 2>, 2>&1, &>, /dev/null & Here-Strings
62.Environment Variables: export, env, printenv & .env Loading
63.Command Substitution: $(command) vs Legacy Backticks
64.Basic Automation: Batch Processing & Lockfiles
65.Small Real-World Scripts: Health Checkers & Backup Utilities
66.Comprehensive Bash Exercises: Pipeline & Automation Challenges
67.Core Knowledge Quiz & Conceptual Review
68.Capstone Mini-Project: Automated Backup & Health Dispatcher
69.Course Completion & Verified Certificate
Course Certificate0%

Complete all lessons to earn

LearnCreating and Extracting Compressed Files (.tar.gz, .tar.bz2, .tar.xz)
40 / 69 0%
Lesson 40 of 69
5 mins read

Creating and Extracting Compressed Files (.tar.gz, .tar.bz2, .tar.xz)

PreviousNext Lesson
In Plain English

Combining `tar` bundling with modern compression algorithms yields compressed tarballs: `.tar.gz` (fastest, ubiquitous), `.tar.bz2` (higher ratio), and `.tar.xz` (maximum compression for software releases). Modern GNU tar auto-detects compression format during extraction.

The Mental Model

"`tar` packs all your belongings into a cardboard box; `gzip` shrinks the cardboard box down to 20% of its original size with high-pressure compression."

Deep Dive: How It Works

Compression Flags: `-z` (gzip: fast, standard), `-j` (bzip2: balanced), `-J` (xz: maximum compression ratio, used for Linux kernel source tarballs).

Auto-Detection: `tar -xf archive.tar.gz` or `tar -xf archive.tar.xz` automatically inspects magic bytes and decompresses without needing explicit flags.

Standalone compression: `gzip file.txt` compresses in place to `file.txt.gz`; `gunzip file.txt.gz` decompresses.

Syntax Blueprint

tar -czvf release.tar.gz ./dist/   # Gzip tarball (.tar.gz)
tar -cjvf backup.tar.bz2 /var/www/ # Bzip2 tarball (.tar.bz2)
tar -cJvf kernel.tar.xz ./src/     # XZ tarball (.tar.xz)
tar -xvf any_archive.tar.*         # Universal auto-detect extract

Use -czf for standard releases and tar -xf for automatic extraction.

PointCore Rules to Remember

Point star
Universal Extraction: Modern GNU tar detects gzip, bzip2, and xz automatically using `tar -xf`.
Point star
gzip vs xz: gzip is 10x faster to compress; xz produces 30% smaller files.
Point star
Standalone Tools: `gzip -d` or `gunzip`, `xz -d` or `unxz` handle single-file streams.

Common Beginner Traps & How to Fix Them

Mistake:Running `gzip file.txt` and wondering where original `file.txt` went.

Why it happens: By default, standalone `gzip` replaces the original uncompressed file with `file.txt.gz`.

How to fix: Use `gzip -k file.txt` (-k / --keep) to retain the uncompressed original.

Pro Tip: Use `tar -czf - ./app | ssh user@remote "tar -xzf - -C /opt/app"` to stream and extract compressed backups over SSH in real-time with zero temporary disk usage.

Live Interactive Example

Hit Run Code to see it live
Creating and Extracting a Gzip Compressed Tarball
Git 2.45 / CLI
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Output Console
Click "Run Code" to view the rendered output.
How it works: tar -czf created the gzipped tarball and tar -xzf extracted it cleanly.

Your Turn: Micro Challenge

No pressure! Edit the starter code below and test your solution with instant feedback.

Micro Exercise

Create and Verify a .tar.gz Archive

  • PointCreate a file `/tmp/app_test.js` with content "AppCode".
  • PointCreate `/tmp/app_test.tar.gz` containing `app_test.js`.
  • PointList its contents with `tar -tf /tmp/app_test.tar.gz`.
  • PointClean up.
1
2
3
4
5
6
Sandbox Output
Click "Run & Check" to test your solution.

Finished reading and practicing?

Mark this lesson as completed to update your course progress.

PreviousNext Lesson
Overview100 SheetLearnCertificates