ทำไมคำสั่ง find ไม่พบไดเร็กทอรีเมื่อรันจาก ~


9

มีไดเรกทอรีที่อยู่ภายใต้ชื่อ /tmptest_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: ถูกต้อง! มันเป็น symlink ไปยัง dir อื่น คุณสามารถโพสต์เป็นคำตอบได้หรือไม่?
Jim

คำตอบ:


15

หาก/tmpเป็นลิงก์สัญลักษณ์findจะไม่เข้าสู่ไดเรกทอรีและจะหยุดไม่พบสิ่งใด

ในทางกลับกันคำสั่งใด ๆ ต่อไปนี้จะทำงาน:

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

(สิ้นสุดการเชื่อม/โยงกับ symlink)


1
นี่น่าจะเป็นกรณีของ macOS โดยเฉพาะ บน macOS / tmp คือ symlink ไปยัง / private / tmp หรือบางอย่าง
kojiro
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.