How to auto zip all folders?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to auto zip all folders?
# 1  
Old 08-05-2014
How to auto zip all folders?

Hi,

How do I write a script that will automatically find and zip any folder to the same name in a directory and affected recursively?. The zip file should be place in the same directory where the source folder is. Help is appreciated. Thanks in advance.


ex:

Orange Crayon
Blue Crayon
Red Box

to

Orange Crayon.zip
Blue Crayon.zip
Red Box.zip
# 2  
Old 08-05-2014
Welcome Frozen77,
I have a few to questions pose in response first:-
  • Is this homework/assignment? There are specific forums for these.
  • What have you tried so far?
  • What output/errors do you get?
  • What OS and version are you using?
  • What are your preferred tools? (C, shell, perl, awk, etc. along with gzip or other compression software)
  • What logical process have you considered? (to help steer us to follow what you are trying to achieve)
Most importantly, What have you tried so far?

There are probably many ways to achieve most tasks, so giving us an idea of your style and thoughts will help us guide you to an answer most suitable to you so you can adjust it to suit your needs in future.


We're all here to learn and getting the relevant information will help us all.



Robin

Last edited by rbatte1; 08-05-2014 at 10:43 AM..
# 3  
Old 08-05-2014
This is not a homework assignment. It's for my own site. I have a code that does similar things but only zip file not folders:

Code:
find . -type f -name '*.mp[4g]' -o -name '*.mkv'| while read -r path
do      base="${path%.*}"
        zip "$base" "$path"
done

Not sure how can I modify it to zip folders not files. I'm using CentOS 6.5.
# 4  
Old 08-05-2014
Hello, please try this command in your source directory and let us know if it meets your requirement.
Code:
find . -maxdepth 1 -type d ! -name ".*" -exec bash -c 'zip -r "$0.zip" "$0"' {} \;

This User Gave Thanks to junior-helper For This Post:
# 5  
Old 08-05-2014
junior-helper,

That seems to work, thanks alot. I have to ask does maxdepth mean it only search for 1 layer of subdirectory? how can it search infinite recursively? thanks again.
# 6  
Old 08-05-2014
You're welcome.

Quote:
Originally Posted by Frozen77
I have to ask does maxdepth mean it only search for 1 layer of subdirectory?
Exactly.
Quote:
Originally Posted by Frozen77
how can it search infinite recursively?
Just remove the option -maxdepth 1

*** Important note ***: Actually, the provided command is a combination of two commands (find+zip),
which *does* recursively zip. The recursively part is performed by the zip's option -r.

Assuming following directory structure
Code:
sourcedir/dir 1/sub dir A/sub sub dir B/sub sub sub dir C/
sourcedir/dir 2/sub dir 1/sub sub dir 2/
sourcedir/dir 3/sub-dir-x/sub-sub-dir-y/sub-sub-sub-dir-z/

and the command being run in the sourcedir, it would produce 3 zip files:
Code:
/sourcedir/dir 1.zip # (incl. all sub dirs of dir 1)
/sourcedir/dir 2.zip # (incl. all sub dirs of dir 2)
/sourcedir/dir 3.zip # (incl. all sub dirs of dir 3)

I highly doubt you want to remove the maxdepth option, because it would create a backup of the backup of the backup of the backup...

Hope you get the idea Smilie

Edit:
You could add the echo command to just see what would happen, and afterwards remove the -maxdepth 1 part and see the difference.
Code:
find . -maxdepth 1 -type d ! -name ".*" -exec bash -c 'echo zip -r "$0.zip" "$0"' {} \;


Last edited by junior-helper; 08-05-2014 at 10:26 PM..
These 2 Users Gave Thanks to junior-helper For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Tar.gz/zip folders in a directory with _EBASE string

Hi Folks - Happy Friday and I hope you all are well! What's the easiest way to tar.gz / zip all direct children directories in a folder that have the string _EBASE (suffix)? Thank you! (6 Replies)
Discussion started by: SIMMS7400
6 Replies

2. Shell Programming and Scripting

Gunzip,grep and zip across folders in a subdirectory

I have a simple function that greps within a folder into files that are already gunzipped. This was already written for me so from my understanding fn=$1 specifies that it will look into any file in that folder that is gunzipped and the rest of the script greps the data its looking for and puts it... (3 Replies)
Discussion started by: red56
3 Replies

3. Shell Programming and Scripting

Copy Folders and ZIP IT

HI All I have one master folder : ABCXYZ I have sub folder in there : AB XY AZ AC PR AL Now i want to copy AB , PR ,AL in to one new folder and zip it with time stamp. like Pre_02192013_12_32.zip Zip folder should be in master folder. (2 Replies)
Discussion started by: pareshkp
2 Replies

4. Shell Programming and Scripting

Help with auto-detect new files/folders then zip and move script

Hello, I need a simple script to Auto-detect new files and folders in the directory. And then I need to zip the new files and bzip2 new folders and move them out of that folder where I am detecting changes to the other folder. Remember, I need simple one. If anyone could do it fast, I may... (1 Reply)
Discussion started by: juzt1s
1 Replies

5. Windows & DOS: Issues & Discussions

Auto download - filename UCC-YYYYMMDD.zip format.

Hi, On a daily basis I have download .zip file from FTP site. Naming convention of .zip is UCC-20100816.zip I want to create windows batch file which will automatically download latest .zip file based on system date. .zip file is gets uploaded on a daily basis on FTP site in... (4 Replies)
Discussion started by: rahulbahulekar
4 Replies

6. Shell Programming and Scripting

Using cp: preserving file/folder attributes and auto creating folders

Hi, Is there a way to use cp in such a way that when a file is copied to a destination, the required destination folders are automatically created with the proper permissions, and the resulting copied file has the same attributes as the original. For example if I copied... (1 Reply)
Discussion started by: pcwiz
1 Replies

7. UNIX for Dummies Questions & Answers

Zip a folder including its sub-folders.

Hi, I have a folder that contains a few sub-folders. I would like to zip that folder and KEEP the subfolders. What it does at the moment is taking all the files within the subfolders and zipping them into one big file (zip -r ...). Does anyone know the UNIX command to keep the subfolders in the... (3 Replies)
Discussion started by: gdog
3 Replies

8. UNIX for Dummies Questions & Answers

unzip .zip file and list the files included in the .zip archive

Hello, I am trying to return the name of the resulting file from a .zip archive file using unix unzip command. unzip c07212007.cef7081.zip Archive: c07212007.cef7081.zip SecureZIP for z/OS by PKWARE inflating: CEP/CEM7080/PPVBILL/PASS/G0063V00 I used the following command to unzip in... (5 Replies)
Discussion started by: oracledev
5 Replies

9. UNIX for Dummies Questions & Answers

zip nesting empty folders

I'm using the following command to zip a project file, but when it finishes, the resulting zip file contains all the directories above the file I wanted zipped, myapp.app, each one empty until you get to the actual app. zip -r myapp.app.zip ... (0 Replies)
Discussion started by: groundlevel
0 Replies
Login or Register to Ask a Question