Jika Anda memberi perintah find jalur absolut, itu akan memuntahkan hasilnya dengan jalur absolut. Jadi, dari direktori Ken jika Anda mengetik:
find /home/ken/foo/ -name bar -print
(bukannya jalur relatif find . -name bar -print
)
Anda harus mendapatkan:
/home/ken/foo/bar
Oleh karena itu, jika Anda menginginkan ls -l
dan mengembalikannya ke jalur absolut, Anda bisa memberi tahu perintah find untuk mengeksekusi ls -l
pada apa pun yang ditemukannya.
find /home/ken/foo -name bar -exec ls -l {} ;\
CATATAN: Ada ruang antara {}
dan;
Anda akan mendapatkan sesuatu seperti ini:
-rw-r--r-- 1 ken admin 181 Jan 27 15:49 /home/ken/foo/bar
Jika Anda tidak yakin di mana file itu berada, Anda selalu dapat mengubah lokasi pencarian. Selama jalur pencarian dimulai dengan "/", Anda akan mendapatkan jalur absolut sebagai balasannya. Jika Anda mencari lokasi (seperti /) di mana Anda akan mendapatkan banyak kesalahan yang ditolak izin, maka saya akan merekomendasikan redirect kesalahan standar sehingga Anda benar-benar dapat melihat hasil pencarian:
find / -name bar -exec ls -l {} ;\ 2> /dev/null
( 2>
adalah sintaks untuk shell Borne dan Bash, tetapi tidak akan bekerja dengan shell C. Mungkin juga bekerja di shell lain, tetapi saya hanya tahu pasti bahwa itu bekerja di Bourne dan Bash).
find /home/ken/foo/bar -exec ls -ld $PWD/{} \;