Bird
Raised Fist0
Linux CLIscripting~5 mins

tar with compression (-z, -j, -J) in Linux CLI - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: tar with compression (-z, -j, -J)
O(n)
Understanding Time Complexity

When using tar with compression options, it is important to understand how the time to create or extract archives grows as the size of files increases.

We want to know how the execution time changes when compressing or decompressing larger amounts of data.

Scenario Under Consideration

Analyze the time complexity of the following tar command with compression.


tar -czf archive.tar.gz folder/
# or
# tar -cjf archive.tar.bz2 folder/
# or
# tar -cJf archive.tar.xz folder/

This command creates a compressed archive of the folder using gzip (-z), bzip2 (-j), or xz (-J) compression.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Reading each file's data and compressing it.
  • How many times: Once for each byte of input data in the folder.
How Execution Grows With Input

As the total size of files in the folder grows, the time to read and compress all data grows roughly in proportion.

Input Size (n in MB)Approx. Operations
10Processes about 10 MB of data
100Processes about 100 MB of data
1000Processes about 1000 MB (1 GB) of data

Pattern observation: Doubling the input size roughly doubles the time needed to compress.

Final Time Complexity

Time Complexity: O(n)

This means the time to compress grows linearly with the total size of the input data.

Common Mistake

[X] Wrong: "Compression time depends only on the number of files, not their size."

[OK] Correct: Compression works on the actual data size, so larger files take more time even if the file count is small.

Interview Connect

Understanding how compression time scales helps you reason about script performance and system resource use in real tasks.

Self-Check

What if we used tar without compression? How would the time complexity change?

Practice

(1/5)
1. Which option correctly describes the -z flag when used with the tar command?
easy
A. It compresses the archive using gzip.
B. It compresses the archive using bzip2.
C. It compresses the archive using xz.
D. It creates an uncompressed archive.

Solution

  1. Step 1: Understand the tar compression flags

    The -z flag tells tar to use gzip compression.
  2. Step 2: Match the flag to the compression type

    -z is for gzip, -j for bzip2, and -J for xz compression.
  3. Final Answer:

    It compresses the archive using gzip. -> Option A
  4. Quick Check:

    -z means gzip compression [OK]
Hint: Remember: z = gzip, j = bzip2, J = xz [OK]
Common Mistakes:
  • Confusing -z with -j or -J
  • Thinking -z creates uncompressed archive
  • Mixing compression types
2. Which of the following is the correct syntax to create a bzip2 compressed tar archive named backup.tar.bz2 from the directory data?
easy
A. tar -cJf backup.tar.bz2 data
B. tar -czf backup.tar.bz2 data
C. tar -cjf backup.tar.bz2 data
D. tar -cf backup.tar.bz2 data

Solution

  1. Step 1: Identify the compression flag for bzip2

    The -j flag is used for bzip2 compression.
  2. Step 2: Check the full command syntax

    tar -cjf backup.tar.bz2 data creates a bzip2 compressed archive named backup.tar.bz2 from data.
  3. Final Answer:

    tar -cjf backup.tar.bz2 data -> Option C
  4. Quick Check:

    -j means bzip2 compression [OK]
Hint: Use -j for bzip2 compression in tar commands [OK]
Common Mistakes:
  • Using -z instead of -j for bzip2
  • Forgetting the 'f' flag for filename
  • Mixing compression flags and extensions
3. What will be the output of the following command if the directory project contains files and subdirectories?

tar -cJf project.tar.xz project
medium
A. Creates an uncompressed tar archive named project.tar.xz
B. Creates an xz compressed tar archive named project.tar.xz
C. Creates a gzip compressed tar archive named project.tar.xz
D. Throws an error because -J is invalid

Solution

  1. Step 1: Understand the -J flag

    The -J flag tells tar to use xz compression.
  2. Step 2: Analyze the command output

    The command creates a compressed archive named project.tar.xz using xz compression from the project directory.
  3. Final Answer:

    Creates an xz compressed tar archive named project.tar.xz -> Option B
  4. Quick Check:

    -J means xz compression [OK]
Hint: Remember: -J compresses with xz, matching .tar.xz files [OK]
Common Mistakes:
  • Thinking -J is invalid
  • Confusing -J with -z or -j
  • Assuming no compression happens
4. You run the command tar -cjf archive.tar.gz folder but get an error. What is the likely cause?
medium
A. The -f flag is missing
B. The -c flag is missing
C. The -j flag cannot be combined with .tar.gz extension
D. The folder does not exist

Solution

  1. Step 1: Verify the flags and syntax

    The command has all required flags: -c for create, -j for bzip2, -f for file.
  2. Step 2: Identify the likely error source

    tar will error if the source folder does not exist, typically with "Cannot stat: No such file or directory".
  3. Final Answer:

    The folder does not exist -> Option D
  4. Quick Check:

    Check source exists before tar [OK]
Hint: Always verify source directory exists before archiving [OK]
Common Mistakes:
  • Assuming flag or extension issues
  • Overlooking if folder exists
  • Focusing on compression mismatch
5. You want to create a compressed archive of the logs directory using the best compression ratio available with tar. Which command should you use?
hard
A. tar -cJf logs.tar.xz logs
B. tar -cjf logs.tar.bz2 logs
C. tar -czf logs.tar.gz logs
D. tar -cf logs.tar logs

Solution

  1. Step 1: Identify compression types and their ratios

    Gzip (-z) is fast but less compressed, bzip2 (-j) is better, and xz (-J) offers the best compression ratio.
  2. Step 2: Choose the best compression flag

    Using -cJf creates an xz compressed archive, which has the best compression ratio.
  3. Final Answer:

    tar -cJf logs.tar.xz logs -> Option A
  4. Quick Check:

    Best compression = xz = -J flag [OK]
Hint: Use -J for best compression with tar [OK]
Common Mistakes:
  • Choosing gzip or bzip2 for best compression
  • Forgetting compression flag
  • Using uncompressed tar by mistake
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard