while list; do list; done

oder auch: spass mit schleifen in der bash und symlinks.

# da ich gesehen habe das mein mac os sl z.b. groestenteils die bsd
# versionen nimmt hier die versionen der verwendeten gnu versionen
# unter ubuntu 9.10 server  auf meinem p iii (700 mhz)

$ bash --version
GNU bash, version 4.0.33(1)-release (i486-pc-linux-gnu)
...
$ ls --version
ls (GNU coreutils) 7.4
...
$ ln --version
ln (GNU coreutils) 7.4
...
$ find --version
find (GNU findutils) 4.4.2

####

# erstelle fuer einen ordner absolute gueltige symlinks
# in einem anderem zielordner.

$ ls <absolute/source/path/> | while read FILES;
    do ln -s -T "<absolute/source/path/>$FILES"
                               "<absolute/destination/path/>$FILES";
        done

###

# um die arbeit zu ueberpruefen muss man nun auf ungueltige symlinks
# innerhalb eines verzeichnisses pruefen. folgender command ist dazu
# leider doch nicht geeignet, obwohl die ueberlegung nicht schlecht
# wahr...

$ ls <directory> | while read FILES;
    do test -f $FILES | echo $?;
        done

# test -f <file> testet ob <file> existiert und gibt 0 (vorhanden)
# oder 1 (nicht vorhanden) zurueck, was mittels | echo $? menschen-
# lesbar gemacht wird. da ein symlink aber eine gueltige datei ist
# und nicht auf das vorhandensein des ziels ueberprueft wird,
# gibt der command nun IMMER 0 zurueck und die while-schleife
# laueft ohne fehler durch! also unbrauchbar!!

### ABER

# zum finden von ungueltigen symlinks incl. der ausgabe der
# symlinks mit absolutem pfad

$ find -L <director> -type l

so. vielleicht hat ja jemand von euch was dazu gelernt oder was nicht verstanden, dann bitte gerne nachfragen. jedenfalls hatte ich mit herrn m.t. eine menge spass am geraet und wir haben ne menge in man-pages gewuehlt um uns den mist aus dem ruecken zu leihern. und auch wenn nicht alle versuche von erfolg gekroent waren, so hat man eine menge experimentiert und ne menge uebers geraet gelernt. und ploetzlich waren sachen fuer einen moeglich vor dennen man sich immer gedrueckt hat. wie dem praezisen formulieren eines problemes und der praezisen formulierung einer aufgabenloesung um sich eine menge arbeit zuersparen, investiert man einmal etwas mehr denkschmalz als ueblich.

Tags: , , , , , ,

4 Responses to “while list; do list; done”

  1. kautzz Says:

    cool sieht gut aus.
    also läuft die kiste wieder?

  2. Bernd Naumann Says:

    meine ja. die mediathek muessen wir mal gucken, da hat franky vorhin dran geschraubt. sieht da schwer nach nem zerstoertem board aus. ja und am server muss ich gleich nur noch die ownership nochmal explizit setzen und gucken ob der apache die dateien ausserhalb des documentroot richtig ausliefert und eben ob er den synlinks folgen kann... aber ich glaub das mach ich morgen. ich guck jetz noch kurz den gluecklichen nullen zu die mir pstrace in htop anzeigt. na und solange nur nullen kommen weiss ich das alle symlinks ganz sind. aber bis zum schluss guck ich da jetzt auch nicht mehr zu...

  3. Basti Says:

    also die formatierung geht ja mal garnicht, da muss ich als "alter hase" mal meckern, mein vorschlag für die lesbarkeit:

    ...ICH BRECH AB, HIER GEHT JA NICHTMAL GROSS UND KLEINSCHREIBUNG!
    NAJA, SOWAS HIER MEINTE ICH:

    WHILE TRUE; DO {
    TEST -F "$FILE" &} DONE

  4. Basti Says:

    SORRY, ABER DER EDITOR IST VÖLLIG B0RKEN 😎

Leave a Reply