Hallo !
Ich habe ein kleines Problem Ich möchte ein Script machen, dass automatisch in alle Unterordner von Ordner "xy" geht (unterordner Namen können variieren und sind von unbestimmter Menge), in diesen dann immer den Ordner "incomplete" löscht, all restlichen inhalt zum Ordner "ab" verschiebt und anschließend den Unterordner löscht. Dies wiederholt sich so lange, bis kein Unterordner mehr übrig ist.
Wieso? Weil ich einen Linksys NSLU2 NAS Server besitze und Online Radio mithilfe meiner Dream aufnehme. Der Speichert jeden Radiosender in eigenem Unterordner. Ich möchte, dass mir der NAS Server dann per Cronjob zB Jede Woche Samstag um 12 Uhr alle Dateien in einen Ordner ohne jegliche Unterordner schiebt.
So, dazu habe ich schonmal folgendes geschrieben (ungetestet!), allerdings fehlt mir etwas für den grep Befehl.
Wie bekommt man mithilfe mit grep (oder auch irgendetwas komplett anderem) nur die erste Ausgegebene Zeile von "ls -1" in eine Variable?
Hier mein bislang geschriebenes Script (ungetestet und wahrsch. noch mit Fehlern :P) :
#!/bin/sh
QUELLE = "/share/hdd/data/dream/music/"
ZIEL = "/share/hdd/data/musik/"
WEITER = 1
cd $QUELLE
ORDNER = `ls -1 | grep` # 1) Was kommt hinter das grep, 2) Kann man die Variable auf diese Art definieren?
while [ WEITER ]
do
cd ./$ORDNER # in Unterordner wechseln
rm -r ./incomplete # Unter-Unterordner incomplete rekursiv löschen
mv * $ZIEL # restlichen Inhalt ins Ziel schieben
cd .. # in überordner wechseln
rm -f ./$ORDNER # Unterordner Löschen
ORDNER = `ls -1 | grep` # Nächsten Ordner in die Variable speichern
if [ $ORDNER -eq "" ] # Wenn "ORDNER" gleich "" ist, also gleich nichts
then
WEITER = 0
fi
done
Alles anzeigen