Schleife für das Archivieren von Verzeichnissen mit Unrar-Rar (Shell)
Hallo zusammen,
ich habe bereits für das Entpacken eine Schleife geschrieben (in Shell): for f in *.rar;do unrar e -ad -o+ $f;done
Nun bräuchte ich für das Archivieren im Fomrat *.rar eine Schleife, die Ordnerstruktur sieht folgendermaßen aus:
In einem Verzeichnis test sind folgende Verzeichnisse z.B:
0015
Test0004
Baumfotos2010
KeineAhnung01
15
Diese Verzeichnisse sollten in *.rar Archive gepackt werden, also die Ausgabe sollte folgendes ausgeben:
0015.rar
Test0004.rar
Baumfotos2010.rar
KeineAhnung01.rar
15.rar
Die Parameter für das Packen von Rar-Archive sind: rar a [Ausgabedatei.rar] [~/Verzeichnis das hinzugefügt werden soll]
Könnt ihr mir viellecht eine Codelösung geben?
mfg Lampux
ich habe bereits für das Entpacken eine Schleife geschrieben (in Shell): for f in *.rar;do unrar e -ad -o+ $f;done
Nun bräuchte ich für das Archivieren im Fomrat *.rar eine Schleife, die Ordnerstruktur sieht folgendermaßen aus:
In einem Verzeichnis test sind folgende Verzeichnisse z.B:
0015
Test0004
Baumfotos2010
KeineAhnung01
15
Diese Verzeichnisse sollten in *.rar Archive gepackt werden, also die Ausgabe sollte folgendes ausgeben:
0015.rar
Test0004.rar
Baumfotos2010.rar
KeineAhnung01.rar
15.rar
Die Parameter für das Packen von Rar-Archive sind: rar a [Ausgabedatei.rar] [~/Verzeichnis das hinzugefügt werden soll]
Könnt ihr mir viellecht eine Codelösung geben?
mfg Lampux
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 153765
Url: https://administrator.de/contentid/153765
Ausgedruckt am: 05.11.2024 um 12:11 Uhr
3 Kommentare
Neuester Kommentar
z.b. ich würde mir erstmal eine liste mit den verzeichnissen erstellen die ich sichern will (ist die bekannt oder nicht?)
ich gehe davon aus die struktur ist dünamisch bis auf bis auf das hauptverzeichnis.
bei zum testen:
/tmp
diese kannst du jetzt mit einer for schleife abarbeiten
als beispiel so:
ich lasse zum testen nur den befehl als echo ausgeben so kann ich sehen was er draus macht.
ich würde jetzt noch die ausgabe in eine art logdatei schreiben und so kann ich jeden tag sehen was gepackt wurde.
möchtest du noch ein anderes ziel verzeichnis haben so solltest du mit sed noch die path angaben anpassen.
das könnte man noch mit einbauen:
entfernt den path
also könnte man es so lösen
gruß michael
ich gehe davon aus die struktur ist dünamisch bis auf bis auf das hauptverzeichnis.
bei zum testen:
/tmp
find /tmp/* -type d > rar.txt # erstellt mir eine text datei in meinem aktuellen verzeichnis mit den namen der verzeichnissen die in /tmp liegen.
als beispiel so:
#!/bin/bash
### erstellt rar dateien aus den verzeichnissen
DATEI=rar.txt
ZAEHLER=1
DEST=/tmp/
for i in $(cat $DATEI); do
echo $ZAEHLER $i
echo rar a $i.rar $i
ZAEHLER=$(($ZAEHLER+1))
done
ich lasse zum testen nur den befehl als echo ausgeben so kann ich sehen was er draus macht.
ich würde jetzt noch die ausgabe in eine art logdatei schreiben und so kann ich jeden tag sehen was gepackt wurde.
möchtest du noch ein anderes ziel verzeichnis haben so solltest du mit sed noch die path angaben anpassen.
das könnte man noch mit einbauen:
sed -e "s/\/*.\///g;s/\///g" rar.txt
also könnte man es so lösen
#!/bin/bash
### erstellt rar dateien aus den verzeichnissen
DATEI=rar.txt
ZAEHLER=1
DEST=/backup/
SOURCE=/tmp/*
find $SOURCE -type d > rar.txt
for i in $(cat $DATEI); do
echo $ZAEHLER $i
b=`echo $i | sed -e "s/\/*.\///g;s/\///g"`
echo rar a $DEST$b.rar $i
ZAEHLER=$(($ZAEHLER+1))
done