18. Dezember 200519 j ich hab doch ne Frage... wir haben ja jetzt einfach ein rm -Rf /$ZIEL/* und löschen sicherheitshalber den ganzen Inhalt des Zielordners... Wie müsste das denn aussehen, wenn man eine Überprüfung einbauen will und die Links nur dann anlegt wenn Sie noch nicht vorhanden sind? Also nur neue anlegt...
19. Dezember 200519 j Moin, der folgende Codeschnipsel sollte dir weiterhelfen (Inhalt von xx: 1x der Name eines existierenden Links und 1x ein Name eines nicht existenten Links): #! /bin/bash for name in $(cat xx); do test [b]-L[/b] "$lnam" && { echo "'$name' ist ein vorhandener Link."; } || { echo "'$name' ist kein Link."; } done
20. Dezember 200519 j okay - danke aaaber - an welcher Stelle muss ich das jetzte einbauen damit es funktioniert? :confused: das rm -Rf /$ZIEL/* nehme ich raus. Und dann baue ich das andere....wo und wie ein? Tut mir leid aber ich bin doch nen Anfänger... :hells:
20. Dezember 200519 j moin, ich würde sagen genau an der Stelle wo du das rm -Rf /$ZIEL/* entfernst. Aber du solltest die "echo"-Zeilen dann druch deine gewünschten Aktionen ersetzen cu
4. Januar 200619 j hmhm... ich war leider sehr lange krank und konnte nicht weitermachen.. also ich grabe den threat mal wieder aus das mit dem cat xx habe ich noch nicht wirklich verstanden.. ich habe es jetzt mal so umgebaut: #!/bin/sh #set -x clear echo echo echo "SYMLINKS" echo #Konfiguration QUELLE=home/test ZIEL=home/test2 #Root-Rechte if [ "$UID" -ne "0" ] then echo "Sie benoetigen Root-Rechte." exit $E_NOTROOT fi #Symlink for name in $(cat xx); do test -L "$lnam" && { echo "'$name' ist ein vorhandener Link."; } || { echo "'$name' ist kein Link."; foo=0 for i in $(find /$QUELLE/) do liste[$foo]=$(basename $i) foo=$foo+1 done for name in ${liste[@]} do eins=${name:0:1} zwei=${name:1:1} mkdir -p /$ZIEL/$eins/$zwei ln -sf /$QUELLE/$name /$ZIEL/$eins/$zwei/$name done } done echo "Die Links wurden erfolgreich angelegt bzw. aktualisiert!" echo exit 0 Aber dabei bekomme ich folgendes: cat: xx: No such file or directory
4. Januar 200619 j for name in $(cat xx); do Darauf bezieht sich doch der Fehler... was willst du da auslesen ... xx ? In welchem Verzeichnis? Oder meintest du damit was anderes.... ?
4. Januar 200619 j Wie auf Seite 2 steht. Ich will nicht einfach alle Ordner löschen und alle Symlinks neu anlegen sondern überprüfen ob sie schon vorhanden sind und wirklich nur dann neu anlegen... also will ich hmhm auslesen ob es halt den Symlink den er gerade anlegen soll schon gibt... irgendwie so...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.