บน Linux
cd /tmp
mkdir foo; cd foo
ตอนนี้ทำงาน
find . -name 'foo'
ไม่ให้ผลลัพธ์ ในขณะที่วิ่ง
find /tmp/foo -name 'foo'
ให้ผลลัพธ์/tmp/fooที่ไม่สมเหตุสมผลกับฉัน มีใครอธิบายได้ไหม
findสิ่งที่ผมไม่เข้าใจคือทำไมมันได้สร้างความแตกต่างถ้าฉันให้เส้นทางสัมบูรณ์ไปยัง
barที่ชี้ไปยังไฟล์fooที่อยู่นอกเส้นทางการค้นหา ตรงกับที่ว่าหรือไม่?
.และ/tmp/fooจะไม่เหมือนกัน - พวกเขาเป็นสองเชื่อมโยงอย่างหนักที่แตกต่างกันไปยังไดเรกทอรีเดียวกัน; find /tmp/foo/. -name 'foo'ไม่พบอะไรเลย
find /tmp/foo -name 'foo'ฉันขอให้ทุบตีหาในไดเรกทอรี/tmp/fooไฟล์ที่มีชื่อว่า "foo" เนื่องจากไดเรกทอรี/tmp/fooว่างเปล่าจึงไม่ควรส่งคืนสิ่งใด ฉันไม่เข้าใจว่าทำไมมันกลับ/tmp/fooมา ในทางกลับกันเมื่อฉันวิ่งfind . -name 'foo'ฉันก็ขอทุบตีสิ่งเดียวกันนั่นคือการค้นหาไฟล์ในไดเรกทอรีปัจจุบัน (ซึ่งเกิดขึ้นได้/tmp/foo) ซึ่งมีชื่อว่า 'foo' และจะไม่ส่งคืนสิ่งใดที่สมเหตุสมผล
./จะไม่ตรงกันfoo