Se você der ao comando find um caminho absoluto, ele cuspirá os resultados com um caminho absoluto. Portanto, no diretório Ken, se você digitar:
find /home/ken/foo/ -name bar -print
(em vez do caminho relativo find . -name bar -print
)
Voce deveria pegar:
/home/ken/foo/bar
Portanto, se você deseja ls -l
que ele retorne o caminho absoluto, basta dizer ao comando find para executar um ls -l
no que encontrar.
find /home/ken/foo -name bar -exec ls -l {} ;\
NOTA: Há um espaço entre {}
e;
Você obterá algo como isto:
-rw-r--r-- 1 ken admin 181 Jan 27 15:49 /home/ken/foo/bar
Se você não tiver certeza de onde está o arquivo, sempre poderá alterar o local da pesquisa. Desde que o caminho de pesquisa comece com "/", você receberá um caminho absoluto em troca. Se você estiver pesquisando um local (como /) no qual obterá muitos erros de permissão negada, recomendo redirecionar o erro padrão para que você possa realmente ver os resultados da pesquisa:
find / -name bar -exec ls -l {} ;\ 2> /dev/null
( 2>
é a sintaxe dos shells Borne e Bash, mas não funcionará com o shell C. Ele também pode funcionar em outros shells, mas só tenho certeza de que funciona em Bourne e Bash).
find /home/ken/foo/bar -exec ls -ld $PWD/{} \;