karlchen63
19-07-2005, 06:42
Moin Leute,
ich habe zufällig dieses Forum entdeckt und auch gleich eine Lösung für mein Problem gefunden. Allerdings finde ich, es müsste auch eleganter gehen.
Aber nun von vorn,
ich möchte ein Script erstellen, welches mir aus einer vielzahl von Dateien, nur die 10 neusten Dateien übrig läßt und die anderen löscht.
Meine Lösung sieht wie folgt aus:
#!/bin/bash
#######################
# Dieses Script verschiebt die 10 neusten Dateien in ein extra Verzeichnis
# /backup/tmp/ , loescht alle Dateien aus dem Verzeichnis /backup/
# und verschiebt die zehn neusten Dateien wieder in das Verzeichnis /backup/
#
#######################
# Temp-Verzeichnis erstellen,
# wenn es noch nicht existiert
if [ ! -d "/backup/tmp/" ] ; then
mkdir /backup/tmp/
exit 1
fi
# absolute Pfadangabe
cd /backup/
# Anzeige der 10 neusten Dateien
NEWEST=$(ls $(find . -maxdepth 1 -type f) --sort=time | head -n 10 )
# Verschieben der Dateien
mv $NEWEST /backup/tmp/
rm /backup/*.*
# Zurueckschieben der Dateien
mv /backup/tmp/*.* /backup/
rm -r /backup/tmp/
######## Ende ########
Gibt es eine elegantere Lösung?
Gruß karlchen
ich habe zufällig dieses Forum entdeckt und auch gleich eine Lösung für mein Problem gefunden. Allerdings finde ich, es müsste auch eleganter gehen.
Aber nun von vorn,
ich möchte ein Script erstellen, welches mir aus einer vielzahl von Dateien, nur die 10 neusten Dateien übrig läßt und die anderen löscht.
Meine Lösung sieht wie folgt aus:
#!/bin/bash
#######################
# Dieses Script verschiebt die 10 neusten Dateien in ein extra Verzeichnis
# /backup/tmp/ , loescht alle Dateien aus dem Verzeichnis /backup/
# und verschiebt die zehn neusten Dateien wieder in das Verzeichnis /backup/
#
#######################
# Temp-Verzeichnis erstellen,
# wenn es noch nicht existiert
if [ ! -d "/backup/tmp/" ] ; then
mkdir /backup/tmp/
exit 1
fi
# absolute Pfadangabe
cd /backup/
# Anzeige der 10 neusten Dateien
NEWEST=$(ls $(find . -maxdepth 1 -type f) --sort=time | head -n 10 )
# Verschieben der Dateien
mv $NEWEST /backup/tmp/
rm /backup/*.*
# Zurueckschieben der Dateien
mv /backup/tmp/*.* /backup/
rm -r /backup/tmp/
######## Ende ########
Gibt es eine elegantere Lösung?
Gruß karlchen