Compressing folders with password via command line

Go to the relevant folder using the cd command like this:

cd /path/to/folder/

(If your folder F is in your Home folder, you can just do cd ~.)

Then, type in your terminal:

zip -er F.zip F

This will prompt you for a password. Give it, and that will create a password-protected zip file from that folder.

  • -e enables encryption for your zip file. This is what makes it ask for the password.
  • -r makes the command recursive, meaning that all the files inside the folder will be added to the zip file.
  • F.zip is the name of the output file.
  • F is the folder you want to zip.

There is an option called -P that will allow you to pass the password in the command itself, but that is not good because there is always the threat of over-the-shoulder peeking. Also other users can see the password by using ps -ef command if you use -P switch. With that -P switch, the command will look like this:

zip -P password -r F.zip F
  • Visit man zip for more information.

The encryption of zip files is weak and can be broken very easily. Instead use 7zip.

7z a -p Fdirectory.7z /path/to/F
  • a command tells 7zip to add files.
  • -p You can either, leave it blank so it asks you interactively or type your password here.
  • Fdirectory.7z is the name of the to-be-created archive.
  • /path/to/F is the path of your directory. It can be relative or full path.

Is recommendable not typing the password in the shell since it's visible to anyone with access to the /proc directory.