Bird
Raised Fist0
Linux CLIscripting~5 mins

zip and unzip in Linux CLI - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: zip and unzip
O(n)
Understanding Time Complexity

When we use zip and unzip commands, we want to know how the time they take grows as the files get bigger or more numerous.

We ask: How does the work increase when we add more files or larger files?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

zip archive.zip file1.txt file2.txt file3.txt
unzip archive.zip -d output_folder

This code compresses three files into one archive, then extracts them to a folder.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Reading and compressing each file during zip, and reading and decompressing each file during unzip.
  • How many times: Once per file, processing all bytes inside each file.
How Execution Grows With Input

As you add more files or bigger files, the time to zip or unzip grows roughly in proportion to the total size of all files combined.

Input Size (total 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 total file size roughly doubles the work done.

Final Time Complexity

Time Complexity: O(n)

This means the time grows linearly with the total size of the files being zipped or unzipped.

Common Mistake

[X] Wrong: "Zipping many small files is always faster than one big file of the same size."

[OK] Correct: The total data size matters most, not how it is split. Overhead for many files is small compared to reading all bytes.

Interview Connect

Understanding how compression tools scale helps you reason about performance in real tasks, showing you can think about how scripts behave with bigger data.

Self-Check

"What if we used a compression method that only compressed parts of files? How would the time complexity change?"

Practice

(1/5)
1. What does the zip command do in Linux?
easy
A. It extracts files from a compressed archive.
B. It compresses one or more files into a single archive file.
C. It lists the contents of a directory.
D. It deletes files permanently.

Solution

  1. Step 1: Understand the purpose of zip

    The zip command is used to compress files into one archive to save space or organize files.
  2. Step 2: Differentiate from other commands

    unzip extracts files, ls lists files, and rm deletes files, so these are not correct.
  3. Final Answer:

    It compresses one or more files into a single archive file. -> Option B
  4. Quick Check:

    zip = compress files [OK]
Hint: Zip means pack files together into one compressed file [OK]
Common Mistakes:
  • Confusing zip with unzip command
  • Thinking zip lists files
  • Assuming zip deletes files
2. Which of the following is the correct syntax to create a zip archive named archive.zip including all files in the folder docs recursively?
easy
A. zip -r archive.zip docs
B. zip -x archive.zip docs
C. unzip -r archive.zip docs
D. zip archive.zip docs

Solution

  1. Step 1: Identify the option for recursive zip

    The -r option tells zip to include folders and their contents recursively.
  2. Step 2: Check command correctness

    zip -r archive.zip docs correctly creates the archive including all files inside docs. Other options are incorrect or for unzip.
  3. Final Answer:

    zip -r archive.zip docs -> Option A
  4. Quick Check:

    Use -r to zip folders recursively [OK]
Hint: Use -r option with zip to include folders recursively [OK]
Common Mistakes:
  • Using unzip instead of zip to create archive
  • Forgetting -r to include folders
  • Using -x which excludes files
3. What will be the output of the command unzip -l archive.zip?
medium
A. It lists the contents of archive.zip without extracting.
B. It deletes archive.zip after listing contents.
C. It extracts all files from archive.zip to current directory.
D. It compresses files into archive.zip.

Solution

  1. Step 1: Understand the -l option in unzip

    The -l option lists the files inside the zip archive without extracting them.
  2. Step 2: Differentiate from other actions

    Extracting files uses unzip without -l, deleting is not done by unzip, and compressing is done by zip, not unzip.
  3. Final Answer:

    It lists the contents of archive.zip without extracting. -> Option A
  4. Quick Check:

    unzip -l lists archive contents [OK]
Hint: Use unzip -l to peek inside zip without extracting [OK]
Common Mistakes:
  • Thinking unzip -l extracts files
  • Confusing zip and unzip commands
  • Assuming unzip deletes files
4. You run unzip archive.zip but get an error saying "cannot find or open archive.zip". What is the most likely cause?
medium
A. The zip archive is corrupted and cannot be opened.
B. You used the wrong command; unzip cannot extract files.
C. The archive.zip file does not exist in the current directory.
D. You need to use the -r option with unzip to extract.

Solution

  1. Step 1: Analyze the error message

    "cannot find or open archive.zip" means the file is missing or path is wrong.
  2. Step 2: Check command and options

    unzip is correct to extract files; no -r option is needed. Corruption would give a different error.
  3. Final Answer:

    The archive.zip file does not exist in the current directory. -> Option C
  4. Quick Check:

    File missing causes cannot find error [OK]
Hint: Check file exists in current folder before unzip [OK]
Common Mistakes:
  • Assuming unzip command is wrong
  • Using -r option with unzip incorrectly
  • Ignoring file location or name typos
5. You want to create a zip archive named backup.zip that includes all files and folders inside project, but exclude all .log files. Which command will do this correctly?
hard
A. zip backup.zip project/*.log
B. unzip -r backup.zip project -x '*.log'
C. zip -r backup.zip project --exclude '*.log'
D. zip -r backup.zip project -x '*.log'

Solution

  1. Step 1: Use recursive zip with exclusion

    The -r option includes folders recursively, and -x '*.log' excludes all .log files.
  2. Step 2: Validate command correctness

    zip -r backup.zip project -x '*.log' uses correct syntax. zip backup.zip project/*.log only zips .log files, C uses invalid --exclude, and D uses unzip which cannot create archives.
  3. Final Answer:

    zip -r backup.zip project -x '*.log' -> Option D
  4. Quick Check:

    Use -r to recurse and -x to exclude files [OK]
Hint: Use -x '*.ext' to exclude files when zipping recursively [OK]
Common Mistakes:
  • Using unzip instead of zip to create archive
  • Wrong exclude syntax like --exclude
  • Not using -r to include folders
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