Se si assegna al comando find un percorso assoluto, sputerà i risultati con un percorso assoluto. Quindi, dalla directory Ken se dovessi digitare:
find /home/ken/foo/ -name bar -print
(invece del relativo percorso find . -name bar -print
)
Dovresti ricevere:
/home/ken/foo/bar
Pertanto, se vuoi un ls -l
e farlo restituire il percorso assoluto, puoi semplicemente dire al comando find di eseguire un ls -l
su qualunque cosa trovi.
find /home/ken/foo -name bar -exec ls -l {} ;\
NOTA: c'è uno spazio tra {}
e;
Otterrai qualcosa del genere:
-rw-r--r-- 1 ken admin 181 Jan 27 15:49 /home/ken/foo/bar
Se non sei sicuro di dove sia il file, puoi sempre cambiare il percorso di ricerca. Finché il percorso di ricerca inizia con "/", in cambio otterrai un percorso assoluto. Se stai cercando una posizione (come /) in cui otterrai molti errori di autorizzazione negata, ti consiglio di reindirizzare l'errore standard in modo da poter effettivamente vedere i risultati della ricerca:
find / -name bar -exec ls -l {} ;\ 2> /dev/null
( 2>
è la sintassi per le shell Borne e Bash, ma non funzionerà con la shell C. Potrebbe funzionare anche con altre shell, ma so solo che funziona in Bourne e Bash).
find /home/ken/foo/bar -exec ls -ld $PWD/{} \;