คือ“.” และรายการ ".. " ในรายชื่อ dir จะเหมือนเดิมหรือไม่


13

เมื่อใดที่ "." และรายการ ".. " ในรายชื่อ dirแตกต่างกันอย่างไร (ฉันเข้าใจว่าพวกเขาเป็นตัวแทนสองไดเรกทอรีที่แตกต่างกัน แต่พวกเขามักจะแสดงรายการที่เหมือนกันกับวันที่และเวลาเดียวกันในคำสั่ง dir เริ่มต้นพวกเขาเคยแตกต่างกันหรือไม่?)


1
คุณสามารถให้ตัวอย่าง (อาจจะด้วยการยิงหน้าจอ)
ChrisF

คำตอบ:


26

เป็นรายการจริง:

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 ..ผลิตผลลัพธ์เดียวกัน


ตอบไปยังจุดที่ดี
ppuschmann

แก้ไขเพื่อเน้นคำถามที่เกี่ยวกับการปรากฏตัวของพวกเขาในรายการ dir
พยานคุ้มครอง ID 44583292

@ ไมค์ - พยายามที่จะตอบคำถามที่ปรับปรุงใหม่จะปรับคะแนนเสียง;)
ChrisF

4
ไม่ถูกต้องเนื่องจาก..ไม่ได้รับการประทับเวลาของไดเรกทอรีหลักจะได้รับการประทับเวลาของไดเรกทอรีปัจจุบัน นี่เป็นเพราะ.และ..ทั้งคู่ถูกสร้างขึ้นเมื่อสร้างไดเรกทอรี
Synetech

@Synetech - Ah! หยดเงิน
ChrisF

14

ไม่พวกเขาจะเหมือนเดิมเสมอ เนื่องจากสิ่งเหล่านี้เป็นไดเรกทอรีไม่ใช่ไฟล์จึงถูกจัดการแตกต่างกันเล็กน้อย (ในความเป็นจริงพวกเขาไม่ได้เป็นไดเรกทอรีปกติพวกเขาเป็นตัวชี้ตามที่ eL01 กล่าวดังนั้นพวกเขาจึงได้รับการจัดการแตกต่างจากไดเรกทอรีปกติมากขึ้น)

เมื่อคุณสร้างไดเรกทอรีรายการสองรายการจะถูกสร้างขึ้นโดยอัตโนมัติ:

  • . ชี้ไปยังไดเรกทอรีที่สร้างขึ้นใหม่
  • .. ชี้ไปที่พาเรนต์ของไดเร็กทอรีใหม่

เห็นได้ชัดว่า.จะมีวันที่และเวลาปัจจุบันที่ไดเรกทอรีถูกสร้างขึ้นและในขณะที่มันอาจดูเหมือนเป็นเหตุผลสำหรับการประทับเวลาของไดเรกทอรีหลักที่จะคัดลอกไป..ที่นั่นไม่ใช่วิธีการทำงาน เมื่อคุณสร้างไดเรกทอรีใหม่ตัวชี้ทั้งสองจะได้รับวันที่และเวลาปัจจุบัน นี่เป็นกรณีจาก DOS ถึง Windows 7 ทั้ง FAT * และ NTFS


1
+1 เนื่องจากดูเหมือนว่าคุณเป็นคนแรกที่ได้คำตอบที่ ChrisF กำลังนำเสนอ ;-)
Jonas Heidelberg

@Jonas จริง ๆ แล้วคำตอบของ ChrisF สร้างข้อสันนิษฐานที่ผิดพลาดเหมือนกันกับที่คนส่วนใหญ่ต้องการ: นั่น..จะมีการประทับเวลาของผู้ปกครอง (ฉันจะไม่แปลกใจถ้าสักวันระบบไฟล์ใหม่ - WinFS? - ในที่สุดจะทำอย่างนั้น)
Synetech

เริ่มจากการแก้ไขครั้งที่ 4ของฉันฉันจะบอกว่าเขาไม่ได้ทำให้สมมติฐานนั้นอีกต่อไป
Jonas Heidelberg

@ โจนัสเอาละ ฉันไม่เห็นการแก้ไข โอ้เขาได้รับคะแนนโหวตใหม่อยู่ดี ฉันเดาว่าเป็นจุดที่ฟังก์ชั่นแก้ไข
Synetech

ฉันควรให้เครดิตคุณในการแก้ไขล่าสุด - ฉันจะทำตอนนี้
ChrisF

4

จริง ๆ แล้วฉันไม่สามารถให้การพิสูจน์ได้ แต่ฉันคิดว่า: ทุกไดเรกทอรีมีรายการไดเรกทอรีและไฟล์ที่มีอยู่ เพื่อให้สามารถใช้พา ธ สัมพัทธ์ได้ทุกไดเรกทอรีต้องการพอยน์เตอร์สองตัว - หนึ่งต่อหนึ่งตัวเอง.และอีกไดเร็กทอรีหนึ่งอยู่เหนือระดับ..- พอยน์เตอร์ทั้งสองนั้นเพิ่งสร้างขึ้นในเวลาที่สร้างไดเรกทอรีขึ้นมาเอง

ดังนั้นเวลาของ ..จริง ๆ แล้วไม่ใช่การประทับเวลาของไดเรกทอรีด้านบน แต่การประทับเวลาของตัวชี้ไปยังไดเรกทอรีด้านบน


ถูกต้อง. ..รายการจะได้รับการประทับเวลาของวันและเวลาปัจจุบันเมื่อไดเรกทอรีปัจจุบันถูกสร้างขึ้น
Synetech
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.