Bash Script to Compress All Subdirectories


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bash Script to Compress All Subdirectories
# 1  
Old 02-08-2012
Bash Script to Compress All Subdirectories

I'd like to create simple bash script that, given a directory, compresses each directory by name, e.g.:

Contents of ~/Documents
Folder1
Folder2
Folder3

compress-subdirectoies.sh ~/Documents

Results:
Folder1.[some kind of compression like bzip2 or zip]
Folder2.[some kind of compression like bzip2 or zip]
Folder2.[some kind of compression like bzip2 or zip]

Any advice would be appreciated
# 2  
Old 02-08-2012
Since you have BASH, I presume you have linux.

Code:
find . -type d -mindepth 1 -maxdepth 1 | while read DIR
do
        echo tar -zcf "$DIR.tar.gz" "${DIR}"
done

Remove the 'echo' once you know it does what you want.
# 3  
Old 02-08-2012
Try this...
Code:
find . -type d | xargs -I {} tar -cf {}.tar {}

--ahamed
# 4  
Old 02-08-2012
That make zips for folders inside folders, not just zips for the outside folders.
# 5  
Old 02-08-2012
Quote:
Originally Posted by Corona688
That make zips for folders inside folders, not just zips for the outside folders.
mmm... maxdepth and mindepth is missing in my code...
I just created one level of folders and tested it... didn't realize that there can be subfolders too... Smilie

Code:
find . -mindepth 1 -maxdepth 1 -type d | xargs -I {} tar -cf {}.tar {}

--ahamed
# 6  
Old 02-09-2012
Wow, thank you both. Gosh, I love the "little pieces" way Unix works. Here's what I'd change:
1. move from plain text to XML as the transfer method (hidden from user) as the default communication method;
2. tell the Java people they've got the right idea but they didn't implement it right - building their apps is composed of lots of pieces (good) that are almost impossible to configure to work correctly directly (bad).
# 7  
Old 02-09-2012
Quote:
Originally Posted by furashgf
Wow, thank you both. Gosh, I love the "little pieces" way Unix works. Here's what I'd change:
1. move from plain text to XML as the transfer method (hidden from user) as the default communication method;
We have a single column of data here. What value does XML add? Imagine a pipe chain failing because you got the name of a field slightly wrong in one of your commands. xml isn't appropriate for streaming, besides.

I can only see the value of XML for data which isn't easily stored in a simple, tabular format.

Last edited by Corona688; 02-09-2012 at 12:31 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash to create new directory by date followed by identifier and additional subdirectories

I have a bash that downloads a list and if that list has data in it then a new main directory is created (with the date) with several subdirectories (example1, example2, example3). My question is in that list there are portion of specific file types (.vcf.gz) - identifier towards the end that have... (0 Replies)
Discussion started by: cmccabe
0 Replies

2. Shell Programming and Scripting

Bash script monitor directory and subdirectories for new pdfs

I need bash script that monitor folders for new pdf files and create xml file for rss feed with newest files on the list. I have some script, but it reports errors. #!/bin/bash SYSDIR="/var/www/html/Intranet" HTTPLINK="http://TYPE.IP.ADDRESS.HERE/pdfs" FEEDTITLE="Najnoviji dokumenti na... (20 Replies)
Discussion started by: markus1981
20 Replies

3. Shell Programming and Scripting

Bash script deleting my files, and editing files in subdirectories question

#!/bin/bash # name=$1 type=$2 number=1 for file in ./** do if then filenumber=00$number elif then filenumber=0$number fi tempname="$name""$filenumber"."$type" if (4 Replies)
Discussion started by: TheGreatGizmo
4 Replies

4. Shell Programming and Scripting

Need script to compress the file for yesterday.

Hi, I want to write script for the last 5 files to compress. #!/bin/sh a= ls -ltr | awk '{print $9}' | head -5 | tail -3 echo `compress $a` exit 0 but this was telling "not found" please modify the script if i am wrong. (5 Replies)
Discussion started by: victory
5 Replies

5. Shell Programming and Scripting

Compress files as per timestamp in multiple subdirectories

I'd really appreciate if anyone could assist me with this code A directory with multiple subdirectories has multiple files which are timestamp'ed. We need to - compress files as per timestamp - save compressed file/s in the respective folder - delete the source files ============... (2 Replies)
Discussion started by: sreewin7
2 Replies

6. Shell Programming and Scripting

Bash: Gzip files in Directory and itīs Subdirectories

Hello dear Community, I have a task to wrtie a script which will gzip not zipped files in a directory and itīs subdirectories. I succeeded in gzippung the directory but not the subdirectories: #/bin/bash #go to the directory where to zip cd $1 #Zip unzipped files for i in `ls | xargs... (2 Replies)
Discussion started by: JamesCarter
2 Replies

7. UNIX for Dummies Questions & Answers

Issue: Compress in unix server and FTP to windows and open the compress file using Winzip

Hi All ! We have to compress a big data file in unix server and transfer it to windows and uncompress it using winzip in windows. I have used the utility ZIP like the below. zip -e <newfilename> df2_test_extract.dat but when I compress files greater than 4 gb using zip utility, it... (4 Replies)
Discussion started by: sakthifire
4 Replies

8. Shell Programming and Scripting

script in saved in compress format

hi please help me i have scripts saved in compress format in sever Cherrs naveen.g (1 Reply)
Discussion started by: naveeng.81
1 Replies

9. Shell Programming and Scripting

script needed for compress

i hav 200 logs files in a folder i want compress only the files having size more than 10 mb . please provide a script (1 Reply)
Discussion started by: kingkhankk
1 Replies

10. UNIX for Dummies Questions & Answers

compress script

Hi, How wud I script a particular log file to be compressed at a particular time and to be uncompressed after say 2 hours ? Im on a aix 3.2 box . file to be compressed --- > # pwd # /zssps/sps06/slogfile Thanks (3 Replies)
Discussion started by: cubicle^dweller
3 Replies
Login or Register to Ask a Question