Apakah entri “.” Dan “..” dalam daftar dir selalu sama?


13

Kapan "." dan entri ".." dalam daftar direktori berbeda? (Saya mengerti mereka mewakili dua direktori berbeda, tetapi mereka selalu mendaftar secara identik dengan tanggal dan waktu yang sama dalam perintah dir default. Apakah mereka pernah berbeda?)


1
Bisakah Anda memberi contoh (mungkin dengan screen shot)
ChrisF

Jawaban:


26

Mengenai daftar aktual:

27/08/2011  11:23    <DIR>          .
27/08/2011  11:23    <DIR>          ..

Mereka menggunakan tanggal direktori saat ini untuk keduanya. Jika Anda mulai dengan C:\Users\Chris(katakanlah) Anda mungkin mendapatkan yang di atas. Tetapi ketika Anda naik untuk C:\Usersmendapatkan:

26/07/2011  21:20    <DIR>          .
26/07/2011  21:20    <DIR>          ..

Jadi tanggal ..dalam kasus pertama tidak sama dengan tanggal .dalam kasus kedua. Yang tampaknya salah karena mereka (atau seharusnya) direktori yang sama. Namun, .dan ..merupakan referensi ke direktori saat ini dan induk dan keduanya dibuat pada saat yang sama - ketika direktori dibuat - jadi itu sebenarnya benar (terima kasih kepada Synetech inc untuk menunjukkan ini)

Satu-satunya waktu stempel waktu akan berbeda adalah jika satu atau yang lain .atau ..diciptakan kembali.


Jawaban asli:

. berarti direktori saat ini.

.. berarti direktori induk.

Jadi dalam keadaan normal mereka selalu berbeda.

Satu-satunya waktu mereka menghasilkan hasil yang sama adalah ketika Anda berada di root disk. Jadi pada C:\> dir .dan dir ..menghasilkan output yang sama.


jawabannya langsung, bagus.
ppuschmann

Diedit untuk menekankan pertanyaan adalah mengenai penampilan mereka dalam daftar dir.
ID Perlindungan Saksi 44583292

@ Mike - mencoba menjawab pertanyaan yang direvisi untuk membenarkan suara;)
ChrisF

4
Itu salah, karena ..tidak diberi stempel waktu dari direktori induk, itu diberikan stempel waktu dari direktori saat ini. Ini karena .dan ..keduanya dibuat ketika direktori dibuat.
Synetech

@ Sinetech - Ah! Uang receh
ChrisF

14

Tidak, mereka akan selalu sama. Karena ini adalah direktori, bukan file, mereka ditangani sedikit berbeda (pada kenyataannya, mereka bahkan bukan direktori normal, itu pointer seperti yang dikatakan eL01, sehingga mereka ditangani bahkan lebih berbeda dari direktori normal).

Saat Anda membuat direktori, dua entri secara otomatis dibuat:

  • . menunjuk ke direktori yang baru dibuat
  • .. menunjuk ke induk direktori baru

Jelas .akan memiliki tanggal dan waktu saat ini direktori dibuat, dan sementara itu mungkin tampak logis untuk timestamp dari direktori induk yang akan disalin .., itu bukan cara kerjanya. Saat Anda membuat direktori baru, kedua pointer menerima tanggal dan waktu saat ini. Ini adalah kasus dari DOS melalui Windows 7 pada FAT * dan NTFS.


1
Memberi +1 karena tampaknya Andalah yang memberikan jawaban yang kini diajukan ChrisF ;-)
Jonas Heidelberg

@Jonas, sebenarnya, jawaban ChrisF membuat asumsi keliru yang sama bahwa kebanyakan orang akan: yang ..akan memiliki cap waktu orang tua. (Saya tidak akan terkejut jika suatu hari, sistem file baru — WinFS? —Yang akhirnya akan melakukannya dengan cara seperti itu).
Synetech

Dimulai dengan revisi ke - 4, saya akan mengatakan dia tidak membuat asumsi itu lagi.
Jonas Heidelberg

@ Jonas, ah baiklah. Saya tidak melihat hasil edit. Oh well, dia mendapatkan suara baru; Saya kira itulah gunanya fungsi edit.
Synetech

Saya seharusnya memberi kredit kepada Anda dalam revisi terbaru itu - saya akan melakukannya sekarang.
ChrisF

4

Sebenarnya saya tidak bisa memberikan bukti, tetapi saya pikir: Setiap direktori memiliki daftar direktori dan file yang dikandungnya. Untuk memungkinkan untuk menggunakan jalur relatif setiap direktori membutuhkan dua petunjuk itu - satu untuk dirinya sendiri .dan direktori lain satu tingkat di atas ..- kedua petunjuk itu baru saja dibuat pada saat direktori itu sendiri dibuat.

Jadi stempel waktu ..sebenarnya bukan stempel waktu direktori di atas tetapi stempel waktu penunjuk ke direktori di atas.


Itu betul. The ..entri diberi cap tanggal dan waktu ketika direktori saat dibuat.
Synetech
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.