Skip site navigation (1)Skip section navigation (2)
Date:      11 Aug 2003 18:11:28 -0400
From:      Matthew Graybosch <matthew@starbreaker.net>
To:        FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   A little Bash script to help you.
Message-ID:  <1060639888.14212.35.camel@christabel.starbreaker.net>
In-Reply-To: <3F380F5D.6020904@rbcmail.ru>
References:  <3F380F5D.6020904@rbcmail.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2003-08-11 at 17:49, Constantine wrote:
> Hello!
> 
> I am writing a script, which involves unzipping some files. I would have 
> to unzip 4 different zip-files from some directory, and I would need to 
> unzip them to the directory, which would have the same name in it as the 
> original zip-file, i.e. I would like to run something like "ls *.zip", 
> have each file name recorded in some variable, and do a loop like "unzip 
> $filename[$i] -d $filename[$i].unzipped/". Can someone help me with the 
> code? How can I put the results of a command to a variable?

The following assumes you have the bash port installed. Just change the
ARCHIVE_DIR variable to the full path of the directory in which you have
your zip files. Make sure to save this code to a file in "~/bin". I
suggest pasting the following code into "~/bin/munzip.sh".

Then type "chmod +x ~/bin/munzip.sh", then "rehash", and then
"munzip.sh".

**************************************************************

#!/usr/bin/env bash

ARCHIVE_DIR="~/archive"

cd $ARCHIVE_DIR

# you don't need ls *.zip
for zip in *
do
	# just for diagnostics
	echo "$zip"
	# here's the command you want.
	unzip "$zip" -d "$zip.unzipped/"
done
exit 0

**************************************************************

-- 
Matthew Graybosch
http://www.starbreaker.net
"If you take a stand on a dead empty hand, 
never let 'em see your cards." --Savatage



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1060639888.14212.35.camel>