Wenn Sie dem Befehl find einen absoluten Pfad geben, werden die Ergebnisse mit einem absoluten Pfad ausgespuckt. Also, aus dem Ken-Verzeichnis, wenn Sie Folgendes eingeben würden:
find /home/ken/foo/ -name bar -print
(anstelle des relativen Pfades find . -name bar -print
)
Du solltest bekommen:
/home/ken/foo/bar
Wenn Sie also einen möchten ls -l
und den absoluten Pfad zurückgeben möchten , können Sie dem Befehl find einfach anweisen, einen Befehl für ls -l
alles auszuführen, was er findet.
find /home/ken/foo -name bar -exec ls -l {} ;\
HINWEIS: Zwischen {}
und befindet sich ein Leerzeichen;
Sie werden so etwas bekommen:
-rw-r--r-- 1 ken admin 181 Jan 27 15:49 /home/ken/foo/bar
Wenn Sie nicht sicher sind, wo sich die Datei befindet, können Sie den Suchort jederzeit ändern. Solange der Suchpfad mit "/" beginnt, erhalten Sie im Gegenzug einen absoluten Pfad. Wenn Sie nach einem Ort suchen (wie /), an dem Sie viele Fehler erhalten, denen die Berechtigung verweigert wurde, würde ich empfehlen, 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 Borne- und Bash-Shells, funktioniert aber nicht mit der C-Shell. Sie funktioniert möglicherweise auch in anderen Shells, aber ich weiß nur sicher, dass sie in Bourne und Bash funktioniert.)
find /home/ken/foo/bar -exec ls -ld $PWD/{} \;