Mengapa tidak menemukan perintah menemukan direktori saat dijalankan dari ~?

9

Ada sebuah direktori /tmpdengan nama test_copy.

$ ls /tmp/test_copy/
a.sh b.sh  

$ cd /tmp  
/tmp$ find . -name test_copy  
./test_copy

Tetapi jika saya menjalankan findperintah berikut ini tidak mengembalikan apa pun.

~/scripts$ find /tmp -name test_copy  
~/scripts$  

Mengapa tidak dapat findmenemukan direktori dalam kasus terakhir?

Jim
sumber
3
Apa hasil dari ls -ld /tmp?
xhienne
2
@xhienne: Anda benar! Itu adalah symlink ke dir lain. Bisakah Anda mempostingnya sebagai jawaban?
Jim

Jawaban:

15

Jika /tmptautan simbolis, findtidak akan masuk ke direktori dan hanya akan berhenti, tidak menemukan apa pun.

Di sisi lain, salah satu dari perintah berikut ini akan berfungsi:

find -H /tmp -name test_copy
find /tmp/ -name test_copy

(akhir /dereferensi symlink)

xienne
sumber
1
Ini mungkin menjadi kasus pada macOS pada khususnya. Pada macOS, / tmp adalah symlink ke / private / tmp atau semacamnya.
kojiro