Bird
Raised Fist0
Linux CLIscripting~5 mins

zip and unzip in Linux CLI - Commands & Configuration

Choose your learning style10 modes available
Introduction
Sometimes you need to bundle many files into one to save space or send them easily. Zip compresses files into one package, and unzip extracts them back to normal files.
When you want to send multiple documents in one file via email.
When you need to save disk space by compressing old project files.
When you want to download a group of files from the internet as one package.
When you want to backup a folder quickly into a single compressed file.
When you want to extract files from a downloaded zip archive.
Commands
This command creates a zip file named archive.zip containing file1.txt and file2.txt. It bundles and compresses these files into one package.
Terminal
zip archive.zip file1.txt file2.txt
Expected OutputExpected
adding: file1.txt (deflated 50%) adding: file2.txt (deflated 45%)
This command extracts all files from archive.zip into the current directory, restoring the original files.
Terminal
unzip archive.zip
Expected OutputExpected
Archive: archive.zip inflating: file1.txt inflating: file2.txt
This command creates a zip file named archive_folder.zip containing the entire folder 'myfolder' and its contents recursively.
Terminal
zip -r archive_folder.zip myfolder
Expected OutputExpected
adding: myfolder/ adding: myfolder/fileA.txt (deflated 40%) adding: myfolder/subfolder/ adding: myfolder/subfolder/fileB.txt (deflated 30%)
→
-r - Recursively include all files and folders inside the specified directory
This command lists the contents of archive.zip without extracting them, so you can see what files are inside.
Terminal
unzip -l archive.zip
Expected OutputExpected
Archive: archive.zip Length Date Time Name --------- ---------- ----- ---- 1234 2024-06-01 12:00 file1.txt 2345 2024-06-01 12:00 file2.txt --------- ------- 3579 2 files
→
-l - List contents of the zip file without extracting
Key Concept

If you remember nothing else from this pattern, remember: zip bundles and compresses files into one package, and unzip extracts them back to normal files.

Common Mistakes
Trying to unzip a file that does not exist or has a different name.
The unzip command will fail with an error because it cannot find the specified zip file.
Check the exact zip file name and path before running unzip.
Using zip without the -r flag to compress a folder.
Only the folder itself is zipped, not its contents, so the zip file will be mostly empty.
Use zip -r to include all files and subfolders inside the folder.
Extracting zip files into a directory without write permission.
Unzip will fail to write files, causing errors and incomplete extraction.
Make sure you have write permission in the target directory or change to a writable directory.
Summary
Use zip to compress one or more files into a single archive file.
Use unzip to extract files from a zip archive back to normal files.
Use the -r flag with zip to compress entire folders recursively.
Use unzip -l to list contents of a zip file without extracting.

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