find . -maxdepth 1 -type l -exec readlink {} \;
Eli mennään juuri niin päin kuin sanoinkin: readlink kertoo, mihin annettu linkki viittaa. Nämä voisit nyt kerätä johonkin muuttujaan listaksi ja silmukassa testata, löytyykö kulloinenkin nimi tästä listasta.
Mutta tuota noin... Esimerkkisi oli sen verran simppeli, että olen ehkä ihan metsässä, mutta eikö mielekkäämpää olisi silmukassa testata, onko annettu nimi
linkki ja ohittaa se, jos on? Ts. esimerkissäsi ei ohitettaisi kansiota /mnt/duuni2 (koska se on linkin kohde) mutta ohitettaisiinkin sen sijaan /mnt/vuorossa, koska se on linkki kohteeseen /mnt/duuni2.
Muoks: Siis osapuilleen näin:
for f in /mnt/*; do
[ ! -h $f ] && echo Käsitellään $f...
done
Tuo ”! -h $f” tarkoittaa siis ”jollei $f ole symbolinen linkki”. Hakasulkeet kannattaa korvata kaksoishakasulkeilla, jollei sh-yhteensopivuus ole tärkeää.