unzip script

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Benutzeravatar
sum69sum
Beiträge: 109
Registriert: 27.09.2005 14:30:00
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

unzip script

Beitrag von sum69sum » 08.10.2007 23:40:54

moin

kann mir jemand von euch in die richtige richtung helfen.
ich habe ca 500 zip dateien, welche ich in einem wurf entpacken möchte
ein shell script sollte folgendes tun :
>> entpacke alles aus dem zip file in einen folder das den namen des zip files trägt.
eigentlich klingt das schon ziemlich simple aber ich übe nun schon eine weile rum.

Dies erzeugt mal alle directories (mit den entsprechenden file namen) von den zip files das es findet

Code: Alles auswählen

for x in *.zip; do mkdir extract/$x; done 
eine zweite zeile müsste ja nun nur noch alles aus den zip files in bereits erzeugten directories entpacken

Code: Alles auswählen

for x in *.zip; do unzip -d extract/$x; done
zweiteres funktioniert nun einfach nicht. sicherlich gehts auch einfacher.... :)

grüüsse
tom

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 08.10.2007 23:52:53

hier fehlt noch das Zipfile als Argument:

Code: Alles auswählen

unzip -d extract/$x
sollte daher so ausschauen:

Code: Alles auswählen

unzip -d extract/$x $x
versuche einmal:

Code: Alles auswählen

for x in *.zip; do mkdir -p extract/$x; unzip -d extract/$x $x; done
Gruß
gms

Benutzeravatar
markus_b
Beiträge: 355
Registriert: 26.01.2006 04:57:18
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von markus_b » 09.10.2007 00:39:40

Ich hab mir dazu schon mal ein Skript gebastelt:

Code: Alles auswählen

#!/bin/bash

IFS="
"

files=$*

if [ -z "$files" ]
then
  files=*.zip
fi

for zipFile in $files
do
  dir=`basename "$zipFile" .zip`
  mkdir $dir
  if [ $? == 0 ]
  then
    unzip -d "$dir" "$zipFile"
  fi
done

Benutzeravatar
sum69sum
Beiträge: 109
Registriert: 27.09.2005 14:30:00
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von sum69sum » 09.10.2007 09:58:25

guten morgen

vielen dank euch beiden für die rasche hilfe.

@ gms : wusst ichs doch der teufel lag im detail :)

der einzeiler, wie auch der mehrzeihler tun genau das richtige.

grüsse
tom

Antworten