How do I make a .zip file that contains every file AND every folder in the directory?
Asked
Active
Viewed 4e+01k times
126
-
1I use 'tar': tar -zcvf archive.tar.gz directory/ http://unix.stackexchange.com/questions/93139/can-i-zip-an-entire-folder-using-gzip – njuhgn Oct 20 '14 at 05:21
4 Answers
185
zip -r foo.zip dir_path
Wesley Rice
- 2,200
-
1The -r means recursive and tells it to go through all of the sub folders. You don't really need the
.zipon the filename (foo.zip) as it will create this anyway. – HippoDuck Jul 21 '16 at 07:50 -
@user2924019's comment that you dont need to specify the zip name is not true in CentOS7. – killjoy Jan 21 '18 at 16:14
-
-
5Well, we've come to what is known as a Mexican standoff, now haven't we? – seizethecarp Mar 02 '18 at 21:51
-
2I'm on CentOS-7 (7.5 to be exact). I ran
zip -r foo my_folderand ended up with afoo.zip. Hopefully this standoff can finally come to an end. – harperville Jun 24 '20 at 02:08 -
zip -r foo.zip dir1_path dir2_path dir3_pathto archive multiple directories. – igor Jul 26 '23 at 21:53
26
Try:
zip -r filename.zip /path/to/folder
Note - this will go recursively, i.e. it will zip all folders and all subfolders of the given folder.
icyrock.com
- 5,292
-
where obviously
/path/to/foldercan be a regex, like/path/to/folder/myprefix*, which will put in the archive only the files and folders starting bymyprefix. – Tms91 Jun 29 '23 at 15:48
6
Use the -r option. From zip(1):
-rTravel the directory structure recursively; for example:
zip -r foo foo
The name of the zip file comes first. "Recursively" means that the zip file will include subfolders of the given folder, the subfolders of those folders, and so on.
PleaseStand
- 4,919
4
If you are bound to a zip, I'd use:
zip -r zipfilename directoryPath
The -r is the key, but you can find all the options here.
Amal Murali
- 814