Чому команда не знайде каталог під час запуску з ~?


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

(закінчення /відмінює символьне посилання)


1
Це, мабуть, саме в macOS. У macOS / tmp - це симпосилання на / private / tmp або щось подібне.
kojiro
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.