Почему команда find не находит каталог при запуске из ~?

9

Есть каталог /tmpс именем test_copy.

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

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

Но если я запускаю следующую findкоманду, она ничего не возвращает.

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

Почему не findудается найти каталог в последнем случае?

Джим
источник
3
Каков результат ls -ld /tmp?
xhienne
2
@xhienne: Вы правы! Это была символическая ссылка на другой каталог. Вы можете опубликовать это как ответ?
Джим

Ответы:

15

Если /tmpэто символическая ссылка, findне войдет в каталог и просто остановится, ничего не найдя.

С другой стороны, любая из следующих команд будет работать:

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

(окончание /разыменовывает символическую ссылку)

xhienne
источник
1
Скорее всего, это относится к macOS в частности. В macOS / tmp - это символическая ссылка на / private / tmp или что-то подобное.
Кодзиро