เมื่อใดที่ "." และรายการ ".. " ในรายชื่อ dirแตกต่างกันอย่างไร (ฉันเข้าใจว่าพวกเขาเป็นตัวแทนสองไดเรกทอรีที่แตกต่างกัน แต่พวกเขามักจะแสดงรายการที่เหมือนกันกับวันที่และเวลาเดียวกันในคำสั่ง dir เริ่มต้นพวกเขาเคยแตกต่างกันหรือไม่?)
เมื่อใดที่ "." และรายการ ".. " ในรายชื่อ dirแตกต่างกันอย่างไร (ฉันเข้าใจว่าพวกเขาเป็นตัวแทนสองไดเรกทอรีที่แตกต่างกัน แต่พวกเขามักจะแสดงรายการที่เหมือนกันกับวันที่และเวลาเดียวกันในคำสั่ง dir เริ่มต้นพวกเขาเคยแตกต่างกันหรือไม่?)
คำตอบ:
เป็นรายการจริง:
27/08/2011 11:23 <DIR> .
27/08/2011 11:23 <DIR> ..
พวกเขากำลังใช้วันที่ของไดเรกทอรีปัจจุบันสำหรับทั้งคู่ หากคุณเริ่มต้นในC:\Users\Chris
(พูด) คุณอาจได้รับข้างต้น แต่เมื่อคุณขึ้นไปC:\Users
คุณจะได้รับ:
26/07/2011 21:20 <DIR> .
26/07/2011 21:20 <DIR> ..
ดังนั้นวันที่..
ในกรณีแรกจึงไม่ตรงกับวันที่.
ในกรณีที่สอง ซึ่งเห็นได้ชัดว่าผิดเนื่องจากเป็น (หรือควร) ไดเรกทอรีเดียวกัน อย่างไรก็ตาม.
และ..
มีการอ้างอิงไปยังไดเรกทอรีปัจจุบันและผู้ปกครองและทั้งสองถูกสร้างขึ้นในเวลาเดียวกัน - เมื่อไดเรกทอรีถูกสร้างขึ้น - ดังนั้นมันถูกต้องจริง (ขอบคุณ Synetech inc สำหรับการชี้นี้)
ครั้งเดียวที่การประทับเวลาจะแตกต่างกันคือถ้าหนึ่งหรืออื่น ๆ ของ.
หรือ..
ถูกสร้างขึ้นใหม่
คำตอบเดิม:
.
หมายถึงไดเรกทอรีปัจจุบัน
..
หมายถึงไดเรกทอรีหลัก
ดังนั้นภายใต้สถานการณ์ปกติพวกเขาจึงแตกต่างกันเสมอ
ครั้งเดียวที่พวกเขาให้ผลลัพธ์เดียวกันคือเมื่อคุณอยู่ที่รูทของดิสก์ ดังนั้นที่C:\>
dir .
และdir ..
ผลิตผลลัพธ์เดียวกัน
..
ไม่ได้รับการประทับเวลาของไดเรกทอรีหลักจะได้รับการประทับเวลาของไดเรกทอรีปัจจุบัน นี่เป็นเพราะ.
และ..
ทั้งคู่ถูกสร้างขึ้นเมื่อสร้างไดเรกทอรี
ไม่พวกเขาจะเหมือนเดิมเสมอ เนื่องจากสิ่งเหล่านี้เป็นไดเรกทอรีไม่ใช่ไฟล์จึงถูกจัดการแตกต่างกันเล็กน้อย (ในความเป็นจริงพวกเขาไม่ได้เป็นไดเรกทอรีปกติพวกเขาเป็นตัวชี้ตามที่ eL01 กล่าวดังนั้นพวกเขาจึงได้รับการจัดการแตกต่างจากไดเรกทอรีปกติมากขึ้น)
เมื่อคุณสร้างไดเรกทอรีรายการสองรายการจะถูกสร้างขึ้นโดยอัตโนมัติ:
.
ชี้ไปยังไดเรกทอรีที่สร้างขึ้นใหม่..
ชี้ไปที่พาเรนต์ของไดเร็กทอรีใหม่เห็นได้ชัดว่า.
จะมีวันที่และเวลาปัจจุบันที่ไดเรกทอรีถูกสร้างขึ้นและในขณะที่มันอาจดูเหมือนเป็นเหตุผลสำหรับการประทับเวลาของไดเรกทอรีหลักที่จะคัดลอกไป..
ที่นั่นไม่ใช่วิธีการทำงาน เมื่อคุณสร้างไดเรกทอรีใหม่ตัวชี้ทั้งสองจะได้รับวันที่และเวลาปัจจุบัน นี่เป็นกรณีจาก DOS ถึง Windows 7 ทั้ง FAT * และ NTFS
..
จะมีการประทับเวลาของผู้ปกครอง (ฉันจะไม่แปลกใจถ้าสักวันระบบไฟล์ใหม่ - WinFS? - ในที่สุดจะทำอย่างนั้น)
จริง ๆ แล้วฉันไม่สามารถให้การพิสูจน์ได้ แต่ฉันคิดว่า: ทุกไดเรกทอรีมีรายการไดเรกทอรีและไฟล์ที่มีอยู่ เพื่อให้สามารถใช้พา ธ สัมพัทธ์ได้ทุกไดเรกทอรีต้องการพอยน์เตอร์สองตัว - หนึ่งต่อหนึ่งตัวเอง.
และอีกไดเร็กทอรีหนึ่งอยู่เหนือระดับ..
- พอยน์เตอร์ทั้งสองนั้นเพิ่งสร้างขึ้นในเวลาที่สร้างไดเรกทอรีขึ้นมาเอง
ดังนั้นเวลาของ ..
จริง ๆ แล้วไม่ใช่การประทับเวลาของไดเรกทอรีด้านบน แต่การประทับเวลาของตัวชี้ไปยังไดเรกทอรีด้านบน
..
รายการจะได้รับการประทับเวลาของวันและเวลาปัจจุบันเมื่อไดเรกทอรีปัจจุบันถูกสร้างขึ้น