T
Tannah
Grünschnabel
Grüß Euch!
Obwohl ich die Suchfunktion bemüht habe, bin ich leider nicht schlauer geworden. Deshalb hoffe ich, ihr könnt mir helfen.
Ich bin dabei, ein kleines Script zu schreiben, das zwei Verzeichnisse vergleichen und gleiche Dateien in ein Logfile schreiben soll.
Den Grundstock habe ich, jedoch schaffe ich es nicht, dass die root-Verzeichnisse rekursiv durchgegangen werden. Deshalb an Euch nun meine Frage: Wie geht das?
Hier mein Script:
#!/bin/bash
PATH=/bin:/usr/bin
FIRSTPATH="/home/Jocka/Arbeiten/*"
SECONDPATH="/Sicherung/Arbeiten/*"
LOGFILE="/home/Jocka/Documents/Backup_HOWTO/Vergleich-Log"
echo -n "Removing old log files..."
if [ ! -e "$LOGFILE" ]
then
echo "No logfile present. Deleting old files skipped."
else
rm $LOGFILE 2> /dev/null
if [ ! -e "$LOGFILE" ]
then
echo "Deletion complete."
else
echo "Error while deleting old logfiles."
echo "Continue to compare anyway."
fi
fi
echo "File comparison on $FIRSTPATH and $SECONDPATH" >> $LOGFILE
echo "-------------------------------------------" >> $LOGFILE
for path in $FIRSTPATH
do
for path1 in $SECONDPATH
do
FILE=${path##*/}
FILE1=${path1##*/}
if [ "$FILE" == "$FILE1" ]
then
if [ ! -d "$FILE" ]
then
echo $FILE1 >> $LOGFILE
fi
fi
done
done
echo
echo "System comparison complete, status: $?"
exit
P.S.: Eine weitere Frage noch. Da ich ein ziemlicher Anfänger mit Linux bin und die einzelnen Teile des Scripts teilweise aus dem Netz zusammengeflickt habe, wüßte ich gerne, welche Optionen es für Dateien gibt. "if [ -e ] zum Beispiel heißt "existiert", wenn ich mich nicht irre. Welche Optionen gibt es noch und was bedeuten sie?
Obwohl ich die Suchfunktion bemüht habe, bin ich leider nicht schlauer geworden. Deshalb hoffe ich, ihr könnt mir helfen.
Ich bin dabei, ein kleines Script zu schreiben, das zwei Verzeichnisse vergleichen und gleiche Dateien in ein Logfile schreiben soll.
Den Grundstock habe ich, jedoch schaffe ich es nicht, dass die root-Verzeichnisse rekursiv durchgegangen werden. Deshalb an Euch nun meine Frage: Wie geht das?
Hier mein Script:
#!/bin/bash
PATH=/bin:/usr/bin
FIRSTPATH="/home/Jocka/Arbeiten/*"
SECONDPATH="/Sicherung/Arbeiten/*"
LOGFILE="/home/Jocka/Documents/Backup_HOWTO/Vergleich-Log"
echo -n "Removing old log files..."
if [ ! -e "$LOGFILE" ]
then
echo "No logfile present. Deleting old files skipped."
else
rm $LOGFILE 2> /dev/null
if [ ! -e "$LOGFILE" ]
then
echo "Deletion complete."
else
echo "Error while deleting old logfiles."
echo "Continue to compare anyway."
fi
fi
echo "File comparison on $FIRSTPATH and $SECONDPATH" >> $LOGFILE
echo "-------------------------------------------" >> $LOGFILE
for path in $FIRSTPATH
do
for path1 in $SECONDPATH
do
FILE=${path##*/}
FILE1=${path1##*/}
if [ "$FILE" == "$FILE1" ]
then
if [ ! -d "$FILE" ]
then
echo $FILE1 >> $LOGFILE
fi
fi
done
done
echo
echo "System comparison complete, status: $?"
exit
P.S.: Eine weitere Frage noch. Da ich ein ziemlicher Anfänger mit Linux bin und die einzelnen Teile des Scripts teilweise aus dem Netz zusammengeflickt habe, wüßte ich gerne, welche Optionen es für Dateien gibt. "if [ -e ] zum Beispiel heißt "existiert", wenn ich mich nicht irre. Welche Optionen gibt es noch und was bedeuten sie?