Dlaczego polecenie find nie znajduje katalogu po uruchomieniu z ~?

9

Pod /tmpnazwą znajduje się katalog test_copy.

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

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

Ale jeśli uruchomię następujące findpolecenie, nic nie zwróci.

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

Dlaczego nie mogę findznaleźć katalogu w ostatnim przypadku?

Jim
źródło
3
Jaki jest wynik ls -ld /tmp?
xhienne
2
@xhienne: Masz rację! To był symboliczny link do innego reż. Czy możesz to opublikować jako odpowiedź?
Jim

Odpowiedzi:

15

Jeśli /tmpjest dowiązaniem symbolicznym, findnie wejdzie do katalogu i po prostu przestanie, nie znajdując niczego.

Z drugiej strony zadziała dowolne z następujących poleceń:

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

(zakończenie /dereferencjuje dowiązanie symboliczne)

Xhienne
źródło
1
Dotyczy to w szczególności macOS. W systemie macOS / tmp jest dowiązaniem symbolicznym do / private / tmp lub podobnym.
kojiro