I don’t know why I keep having to do this, but I do. I always to create
separate archives of all the directories in a directory. So, here is
script from David (aka Matir aka EmptyCinema) from linuxquestions.org http://www.linuxquestions.org/questions/showthread.php?s=&postid=1839513#post1839513
to do just that (along with a sample sessions using it).
#!/bin/bash
for dir in */
do dir=echo $dir | tr -d '/'
echo $dir
tar czf $dir.tar.gz $dir
done
[jcz@actinella ~]$ ./zipdir.sh
cdcatalogs
ddclient-3.6.6
Desktop
[jcz@actinella ~]$ ls -lht *.gz
-rw-rw-r– 1 jcz jcz 17M Sep 6 23:31 Desktop.tar.gz
-rw-rw-r– 1 jcz jcz 13K Sep 6 23:31 cdcatalogs.tar.gz
-rw-rw-r– 1 jcz jcz 74K Sep 6 23:31 ddclient-3.6.6.tar.gz
Here is another more advanced version:
#!/bin/bash
jcz 13-nov-05
zips (or tar.gz) all directories
in the directory in which it is run
##################################
echo “ *********** “
echo “ this app zips all directories in this directory,”
echo “ tests the created zips for integrity, then “
echo “ copies them to some directory.”
echo “ *********** “
user enters the directory that they want the zips copied to
echo -n “Destination directory for zips e.g. /cygdrive/f/BACKUPS ( . =
here): “
read dest
for dir in */
do dir=echo $dir | tr -d '/'
echo $dir
for zipping, -r recurse into directories
and -u update new or changed files
echo “zip -r” $dir.zip $dir’/*’
zip -ru $dir.zip $dir
for gzipping
tar czf $dir.tar.gz $dir
done
to test zip file integrity
for zipf in ls *.zip
do zip -T $zipf
done
move the zips to some directory
for zipf in ls *.zip
do mv -v $zipf $dest
done