How to create a zip file and ignore directory structure in Linux?

In order to be able to zip files and ignore directory structure that gets created with them, we first must understand what the zip command on Linux actually means and how we can make use of it.

The zip command that Linux provides allows us to specify a compression level with a number prefixed with dash, typically between 0 and 9. It is used to reduce file size through compression and serves as a file packaging facility. The compression process involves taking one or more files and compressing them into a single zip archive, along with metadata about those files.

Syntax

zip [OPTIONS] zipfile files

Basic Zip Example

Consider a case where you want to convert a single file into a zip file. The command shown below demonstrates this:

zip file.zip sample.txt
adding: sample.txt (deflated 24%)
-rw-r--r-- 1 immukul staff 661 Jul 14 09:00 file.zip

Extracting Zip Files

You can unzip the zip file to get the files back with the unzip command:

unzip file.zip
Archive: file.zip
  inflating: sample.txt
-rw-r--r-- 1 immukul staff 661 Jul 14 09:02 sample.txt

Ignoring Directory Structure

To ensure that you don't preserve the directory structure in your zip file, use the -j (junk paths) option. This flattens all files into the root of the zip archive:

zip -j zipContent.zip d1/file.txt d2/2.txt d2/3.txt

The -j option stands for "junk the path", which strips directory information and places all files at the root level of the zip archive.

  adding: file.txt (deflated 45%)
  adding: 2.txt (deflated 32%)
  adding: 3.txt (deflated 28%)
-rw-r--r-- 1 immukul staff 2201512 Jul 14 09:19 zipContent.zip

Comparison of Methods

Method Command Result
With directory structure zip archive.zip d1/file.txt d2/2.txt Preserves paths: d1/file.txt, d2/2.txt
Without directory structure zip -j archive.zip d1/file.txt d2/2.txt Flattens to: file.txt, 2.txt

Additional Options

You can combine the -j option with other useful zip flags:

  • -r − Recursively zip directories

  • -9 − Maximum compression level

  • -q − Quiet mode (suppress output)

zip -j -r -9 archive.zip folder1/ folder2/

Conclusion

The zip -j command is essential for creating flat zip archives without preserving directory structure. This approach is particularly useful when you need all files at the root level of the archive, regardless of their original locations in the filesystem.

Updated on: 2026-03-17T09:01:38+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements