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?


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)


1
Dotyczy to w szczególności macOS. W systemie macOS / tmp jest dowiązaniem symbolicznym do / private / tmp lub podobnym.
kojiro
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.