Wenn Sie dem find-Befehl einen absoluten Pfad angeben, wird er die Ergebnisse mit einem absoluten Pfad ausgeben. Wenn Sie also im Ken-Verzeichnis Folgendes eingeben würden:
find /home/ken/foo/ -name bar -print
(anstelle des relativen Pfades find . -name bar -print
)
Sie sollten es bekommen:
/home/ken/foo/bar
Wenn Sie also eine ls -l
und den absoluten Pfad zurückgeben möchten, können Sie dem find-Befehl einfach sagen, dass er eine ls -l
auf alles, was es findet.
find /home/ken/foo -name bar -exec ls -l {} ;\
HINWEIS: Es gibt ein Leerzeichen zwischen {}
y ;
Das Ergebnis sieht dann etwa so aus:
-rw-r--r-- 1 ken admin 181 Jan 27 15:49 /home/ken/foo/bar
Wenn Sie sich nicht sicher sind, wo sich die Datei befindet, können Sie den Suchort jederzeit ändern. Solange der Suchpfad mit "/" beginnt, erhalten Sie einen absoluten Pfad zurück. Wenn Sie an einem Ort (wie /) suchen, an dem Sie viele "permission denied"-Fehler erhalten, würde ich empfehlen, den Standardfehler umzuleiten, damit Sie die Suchergebnisse tatsächlich sehen können:
find / -name bar -exec ls -l {} ;\ 2> /dev/null
( 2>
ist die Syntax für die Shells Borne und Bash, funktioniert aber nicht mit der C-Shell. Möglicherweise funktioniert sie auch in anderen Shells, aber ich weiß nur mit Sicherheit, dass sie in Bourne und Bash funktioniert.)