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?)
13
Jawaban:
Mengenai daftar aktual:
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 untukC:\Users
mendapatkan: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 .
dandir ..
menghasilkan output yang sama.sumber
..
tidak diberi stempel waktu dari direktori induk, itu diberikan stempel waktu dari direktori saat ini. Ini karena.
dan..
keduanya dibuat ketika direktori dibuat.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 baruJelas
.
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.sumber
..
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).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.sumber
..
entri diberi cap tanggal dan waktu ketika direktori saat dibuat.