a lot of directories each with a .zip

S

Simon Schuster

I could go about this a bunch of different ways. my lame bash skills
came up with:

ls -R | grep "zip" | unzip -d /targetdir , which didn't work (I get
confused with the pipes and the input and the whatnot.)

but that's okay, I'd rather just do it all inside ruby. so, I got the
rubyzip gem, but am not finding any examples on how to use it (and I'm
still confused about how to read the documentation) but rubyzip + rio
seems like how I'll go about it, since I'm using rio in other areas
already.

any help on either doing it all in ruby, or the simple bash command
I'm failing to execute, would be helpful :) thank you much!
 
C

Cameron Matheson

Hi,

I could go about this a bunch of different ways. my lame bash skills
came up with:

ls -R | grep "zip" | unzip -d /targetdir , which didn't work (I get
confused with the pipes and the input and the whatnot.)

but that's okay, I'd rather just do it all inside ruby. so, I got the
rubyzip gem, but am not finding any examples on how to use it (and I'm
still confused about how to read the documentation) but rubyzip + rio
seems like how I'll go about it, since I'm using rio in other areas
already.

any help on either doing it all in ruby, or the simple bash command
I'm failing to execute, would be helpful :) thank you much!

I don't know anything about the ruby module, but I think this bash
command should work:

find . -name "*.zip" -type f -exec unzip -d /targetdir {} \;

Cameron
 
7

7stud --

Simon said:
I could go about this a bunch of different ways. my lame bash skills
came up with:

ls -R | grep "zip" | unzip -d /targetdir , which didn't work (I get
confused with the pipes and the input and the whatnot.)

any help on either doing it all in ruby, or the simple bash command
I'm failing to execute, would be helpful :) thank you much!

ls -R | grep zip (you don't need quotes)

produces something like this:

aaa.zip
bbb.zip
cccc.zip

but there are no path names associated with those file names. I imagine
unzip needs to know the full path to the file in order to unzip
it--unless the file happens to be in the current directory.
 
J

Jesús Gabriel y Galán

but I think this bash
command should work:

find . -name "*.zip" -type f -exec unzip -d /targetdir {} \;

I think the above is the best. Other way if you really want to use
grep and send the output to another command like unzip would be:

find . | grep "\.zip" | xargs unzip

Jesus.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,780
Messages
2,569,611
Members
45,273
Latest member
DamonShoem

Latest Threads

Top