PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ein Script zum entpacken von RAR , ZIP Dateien



Atomara
05.02.2005, 15:52
Hi@all

ich habe ziemliche viele ZIP und RAR Ordner auf der Platte liegen und möchte diese nun entpacken ,allerdings sind es ziemlich viele und es wäre zu schwer sie alle einzeln zu entpacken.

Dann gibts noch das Problem dass ZIP-Ordner lokal entpackt werden aber der Inhalt in einem eigenen Verzeichnes sein soll.

Zu dem kommt es vor dass einige Dateien nicht entpackt werden können ,es wäre sehr hilfreich wenn ich später nachlesen könnte welche Dateien das sind.

smoker
05.02.2005, 19:14
warum strengst du dich nicht selber an ??

eine möglichkeit wäre find . *.zip -exec unzip {} \;

du kannst natürlich dein skript so aufbauen, dass es vorher parameter erwartet bla bla bla etc.....

gruß

marcelcedric
05.02.2005, 20:01
Hi@all

ich habe ziemliche viele ZIP und RAR Ordner auf der Platte liegen und möchte diese nun entpacken ,allerdings sind es ziemlich viele und es wäre zu schwer sie alle einzeln zu entpacken.

Dann gibts noch das Problem dass ZIP-Ordner lokal entpackt werden aber der Inhalt in einem eigenen Verzeichnes sein soll.

Zu dem kommt es vor dass einige Dateien nicht entpackt werden können ,es wäre sehr hilfreich wenn ich später nachlesen könnte welche Dateien das sind.

reicht nicht einfach eine for funktion?


for dateien in $(ls *.zip); do unzip $dateien; done

mfg

Atomara
05.02.2005, 21:20
die funktion werde ich gegebenfalls mal ausprobieren und mir einer ordnererstellung erweitern

oenone
05.02.2005, 21:24
hm.. wozu ne subshell öffnen und ls bemühen?

for zipfile in *.zip;do unzip "$zipfile"; done
für rar entsprechend:

for rarfile in *.rar;do unrar x "$rarfile"; done
dann gibts noch die Möglichkeit einer Funktion:

unpack() {
for file in $@
do
if [ "${file%.[zZ][iI][pP]}" != "${file}" ]
then
unzip "$file"
elif [ "${file%.[rR][aA][rR]}" != "${file}" ]
then
unrar x "$file"
else
echo "Couldn't determine file type..."
fi
done
}
# Aufruf: unpack *
lässt sich natürlich beliebig erweitern.

diese Methoden erfüllen natürlich nicht der Anforderung

aber der Inhalt in einem eigenen Verzeichnes sein soll.

dazu müsste vor jedem entpacken ein Verzeichnis erstellt werden und dort hinein entpackt, bei zip z.B. über den Schalter -d (z.B. unzip -d "${file}_unpacked" "$file"), bei unrar muss lediglich als letztes das Verzeichnis angegeben werden (z.B. unrar x "$file" "${file}_unpacked")

auf bald
oenone