Якщо ви дасте команді find абсолютний шлях, вона виплюне результати абсолютним шляхом. Отже, з каталогу Кена, якщо ви вводили:
find /home/ken/foo/ -name bar -print
(замість відносного шляху find . -name bar -print
)
Ви повинні отримати:
/home/ken/foo/bar
Отже, якщо ви хочете, щоб ls -l
і він повернув абсолютний шлях, ви можете просто сказати команду find виконувати функцію ls -l
на будь-що, що вона знаходить.
find /home/ken/foo -name bar -exec ls -l {} ;\
ПРИМІТКА. Між {}
та та між ними є пробіл;
У вас вийде щось подібне:
-rw-r--r-- 1 ken admin 181 Jan 27 15:49 /home/ken/foo/bar
Якщо ви не впевнені, де знаходиться файл, ви завжди можете змінити місце пошуку. Поки шлях пошуку починається з "/", ви отримаєте абсолютний шлях у відповідь. Якщо ви шукаєте місце (наприклад, /), де ви збираєтеся отримати багато дозволів, у яких відмовлено в помилках, я рекомендую переспрямувати стандартну помилку, щоб ви могли фактично побачити результати пошуку:
find / -name bar -exec ls -l {} ;\ 2> /dev/null
( 2>
це синтаксис оболонок Борна і Баша, але він не працюватиме з оболонкою С. Він може працювати і в інших оболонках, але я точно знаю, що він працює в Борні і Баші).
find /home/ken/foo/bar -exec ls -ld $PWD/{} \;