Initial commit
parent
844a4976ec
commit
287e6579b5
19
README.md
19
README.md
|
@ -2,3 +2,22 @@ ZipDirs
|
||||||
=======
|
=======
|
||||||
|
|
||||||
A bash script to zip archive the directories within a directory.
|
A bash script to zip archive the directories within a directory.
|
||||||
|
|
||||||
|
This script is designed to zip archive all the directories within a
|
||||||
|
given directory (or the current one if unspecified) and output the
|
||||||
|
.zips to another directory (or the current one). Since this uses the
|
||||||
|
'zip' program, it will also update the zips if they already exist.
|
||||||
|
|
||||||
|
An example use case (what I needed it for in the first place) is to
|
||||||
|
zip up all the individual artists in a 'music' folder
|
||||||
|
|
||||||
|
For example:
|
||||||
|
$ ./zipDirs.sh ~/Music ~/Music-zipped
|
||||||
|
|
||||||
|
The output of that command will be all the dirs within ~/Music are
|
||||||
|
zipped and placed into ~/Music-zipped
|
||||||
|
(e.g. ~/Music/Something -> ~/Music-zipped/Something.zip)
|
||||||
|
|
||||||
|
Created by Sean Hickey (Wisellama), 2014
|
||||||
|
Released to the Public Domain under the terms of the Unlicense
|
||||||
|
http://unlicense.org/
|
||||||
|
|
|
@ -0,0 +1,89 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script is designed to zip archive all the directories within a
|
||||||
|
# given directory (or the current one if unspecified) and output the
|
||||||
|
# .zips to another directory (or the current one). Since this uses
|
||||||
|
# the 'zip' program, it will also update the zips if they already
|
||||||
|
# exist.
|
||||||
|
#
|
||||||
|
# An example use case (what I needed it for in the first place) is to
|
||||||
|
# zip up all the individual artists in a 'music' folder
|
||||||
|
#
|
||||||
|
# For example:
|
||||||
|
# $ ./zipDirs.sh ~/Music ~/Music-zipped
|
||||||
|
#
|
||||||
|
# The output of that command will be all the dirs within ~/Music are
|
||||||
|
# zipped and placed into ~/Music-zipped
|
||||||
|
# (e.g. ~/Music/Something -> ~/Music-zipped/Something.zip)
|
||||||
|
#
|
||||||
|
# Created by Sean Hickey (Wisellama), 2014
|
||||||
|
# Released to the Public Domain under the terms of the Unlicense
|
||||||
|
# http://unlicense.org/
|
||||||
|
#
|
||||||
|
# Now lets begin!
|
||||||
|
|
||||||
|
startDir=`pwd`
|
||||||
|
|
||||||
|
# the directory that contains all the dirs to be zipped up
|
||||||
|
dirToZip=$1
|
||||||
|
if [ -z "$dirToZip" ]
|
||||||
|
then
|
||||||
|
dirToZip=.
|
||||||
|
fi
|
||||||
|
|
||||||
|
# the directory where the .zips will be placed
|
||||||
|
outputDir=$2
|
||||||
|
if [ -z "$outputDir" ]
|
||||||
|
then
|
||||||
|
outputDir=.
|
||||||
|
fi
|
||||||
|
|
||||||
|
# convert to global paths
|
||||||
|
if [ ${dirToZip:0:1} != "/" ]
|
||||||
|
then
|
||||||
|
dirToZip=$startDir/$dirToZip
|
||||||
|
fi
|
||||||
|
if [ ${outputDir:0:1} != "/" ]
|
||||||
|
then
|
||||||
|
outputDir=$startDir/$outputDir
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if they are indeed directories and
|
||||||
|
# create the output dir if it doesn't exist.
|
||||||
|
# Side note: I didn't see a good way to negate the '-d' tag, so
|
||||||
|
# that's why the first if part is a nop (the ':').
|
||||||
|
# (it didn't like using '!' before it, as in [ ! -d "$dir" ])
|
||||||
|
if [ -d "$dirToZip" ]
|
||||||
|
then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
echo "$dirToZip is not a directory, quitting."
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
if [ -d "$outputDir" ]
|
||||||
|
then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
if [ -e "$outputDir" ]
|
||||||
|
then
|
||||||
|
echo "$outputDir is not a directory, quitting."
|
||||||
|
exit 2
|
||||||
|
else
|
||||||
|
mkdir "$outputDir"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# go to the directory to be zipped up
|
||||||
|
cd "$dirToZip"
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# zip 'em up
|
||||||
|
# ignore any hidden folders
|
||||||
|
find . -maxdepth 1 -type d \( ! -iname ".*" \) -exec zip -r "$outputDir/{}.zip" {} \;
|
||||||
|
|
||||||
|
|
||||||
|
# May the Llamas spit upon ye.
|
Loading…
Reference in New Issue