Kan find følge symlinks?
Hvis der er to filer i en mappe
fil1
fil2
så vil
udskrive navnene på de to filer:
Men fil2 er en symlink der peger på /sti/til/fil3, så kan man
ændre på find så den i stedet evaluerer symlinket? Altså giver dette output:
Jeg skal bruge det til at generere en liste over alle filer i en mappestruktur, men sådan at der i stedet for symlinks vises destinationerne for symlinket.
fil1
fil2
så vil
find . -exec echo {} \;
udskrive navnene på de to filer:
./fil1
./fil2
Men fil2 er en symlink der peger på /sti/til/fil3, så kan man
ændre på find så den i stedet evaluerer symlinket? Altså giver dette output:
./fil1
/sti/til/fil3
Jeg skal bruge det til at generere en liste over alle filer i en mappestruktur, men sådan at der i stedet for symlinks vises destinationerne for symlinket.
Kommentarer6
Re: Kan find følge symlinks?
find -L . > liste.txt
find returnerer de fundne filnavne, så du behøver ikke -exec.
Se man find for mere information.
Re: Kan find følge symlinks?
Når jeg bruger -exec er det fordi der skal stå noget andet end echo, det er blot for at teste selve syntaxen i find jeg bruger den harmløse echo!
Re: Kan find følge symlinks?
#!/bin/bash
for f in `find -L .`
do
echo "`pwd`${f#*.}" # udskriv filnavn med sti
done
Re: Kan find følge symlinks?
Som i det først eksempel, hvis fil1 er en almindelig fil, og fil2 et symlink der peger på /sti/til/fil3, så skal der stå følgende når man lister mappens indhold:
fil1
/sti/til/fil3
Jeg har funde frem til denne kommando som gør det ønskede:
find . -type l -print | xargs ls -ld | awk '{print $10}'
Re: Kan find følge symlinks?
/media/data/fotografier
Re: Kan find følge symlinks?
Det var til at bringe orden i /etc som jeg så grundigt havde lavet rod i.