Posts Tagged ‘voodoo’

while list; do list; done

Tuesday, September 21st, 2010

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.