Jeśli podasz polecenie find bezwzględną ścieżkę, wypluje wyniki z bezwzględną ścieżką. Więc z katalogu Kena, jeśli chcesz wpisać:
find /home/ken/foo/ -name bar -print
(zamiast ścieżki względnej find . -name bar -print
)
Powinieneś wziąć:
/home/ken/foo/bar
Dlatego, jeśli chcesz ls -l
i zwraca on ścieżkę bezwzględną, możesz po prostu powiedzieć komendzie find, aby wykonała polecenie ls -l
cokolwiek znajdzie.
find /home/ken/foo -name bar -exec ls -l {} ;\
UWAGA: Odstęp między {}
i;
Otrzymasz coś takiego:
-rw-r--r-- 1 ken admin 181 Jan 27 15:49 /home/ken/foo/bar
Jeśli nie masz pewności, gdzie jest plik, zawsze możesz zmienić lokalizację wyszukiwania. Tak długo, jak ścieżka wyszukiwania zaczyna się od „/”, w zamian otrzymasz ścieżkę bezwzględną. Jeśli szukasz lokalizacji (np. /), W której pojawi się wiele błędów odmowy uprawnień, zalecamy przekierowanie błędu standardowego, abyś mógł zobaczyć wyniki wyszukiwania:
find / -name bar -exec ls -l {} ;\ 2> /dev/null
( 2>
to składnia dla powłok Borne i Bash, ale nie będzie działać z powłoką C. Może działać również w innych powłokach, ale wiem tylko na pewno, że działa w Bourne i Bash).
find /home/ken/foo/bar -exec ls -ld $PWD/{} \;