Có phải những người nhập cảnh.


13

Khi nào thì "." và các mục ".." trong danh sách dir khác nhau? (Tôi hiểu rằng chúng đại diện cho hai thư mục khác nhau, nhưng chúng luôn liệt kê giống hệt nhau với cùng ngày và giờ trong một lệnh dir mặc định. Chúng có bao giờ khác nhau không?)


1
Bạn có thể đưa ra một ví dụ (có thể bằng ảnh chụp màn hình)
ChrisF

Câu trả lời:


26

Theo danh sách thực tế:

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

Họ đang sử dụng ngày của thư mục hiện tại cho cả hai. Nếu bạn bắt đầu C:\Users\Chris(nói), bạn có thể nhận được ở trên. Nhưng khi bạn đi lên, C:\Usersbạn nhận được:

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

Vì vậy, ngày ..trong trường hợp thứ nhất không giống với ngày .trong lần thứ hai. Điều này rõ ràng là sai vì chúng là (hoặc nên) cùng một thư mục. Tuy nhiên, ...là các tham chiếu đến thư mục hiện tại và thư mục mẹ và cả hai đều được tạo cùng một lúc - khi thư mục được tạo - vì vậy nó thực sự chính xác (nhờ Synetech inc đã chỉ ra điều này)

Thời gian duy nhất dấu thời gian sẽ khác nhau là nếu một hoặc khác .hoặc ..được tạo lại.


Câu trả lời ban đầu:

. có nghĩa là thư mục hiện tại.

.. có nghĩa là thư mục cha.

Vì vậy, trong hoàn cảnh bình thường, họ luôn luôn khác nhau.

Lần duy nhất họ mang lại kết quả tương tự là khi bạn ở gốc của đĩa. Vì vậy, tại C:\> dir .dir ..sản xuất cùng một đầu ra.


Trả lời cho điểm, tuyệt vời.
ppuschmann

Chỉnh sửa để nhấn mạnh câu hỏi liên quan đến sự xuất hiện của họ trong một danh sách dir.
ID bảo vệ nhân chứng 44583292

@mike - đã cố gắng trả lời câu hỏi sửa đổi để biện minh cho số phiếu;)
ChrisF

4
Điều đó là sai, vì ..không được cung cấp dấu thời gian của thư mục mẹ, nó được đưa ra dấu thời gian của thư mục hiện tại. Điều này là do ...cả hai được tạo khi thư mục được tạo.
Synetech

@Synetech - À! Đồng xu giảm
ChrisF

14

Không, họ sẽ luôn như vậy. Bởi vì đây là các thư mục, không phải tệp, chúng được xử lý hơi khác nhau (trên thực tế, chúng thậm chí không phải là thư mục bình thường, chúng là con trỏ như eL01 đã nói, vì vậy chúng được xử lý thậm chí khác hơn so với thư mục bình thường).

Khi bạn tạo một thư mục, hai mục được tạo tự động:

  • . trỏ đến thư mục vừa tạo
  • .. trỏ đến thư mục mới của thư mục mới

Rõ ràng .sẽ có ngày và thời gian hiện tại mà thư mục được tạo và trong khi nó có vẻ hợp lý cho dấu thời gian của thư mục mẹ được sao chép .., đó không phải là cách nó hoạt động. Khi bạn tạo một thư mục mới, cả hai con trỏ sẽ nhận được ngày và giờ hiện tại. Đây là trường hợp từ DOS đến Windows 7 trên cả FAT * và NTFS.


1
+1 vì có vẻ như bạn là người đưa ra câu trả lời mà ChrisF hiện đang trình bày ;-)
Jonas Heidelberg

@Jonas, thực ra, câu trả lời của ChrisF đưa ra cùng một giả định rằng hầu hết mọi người sẽ: đó ..sẽ là dấu thời gian của cha mẹ. (Tôi sẽ không ngạc nhiên nếu một ngày nào đó, một hệ thống tập tin mới có tên Win WinFS? Haywere cuối cùng cũng làm theo cách đó).
Synetech

Bắt đầu với phiên bản thứ 4 của anh ấy, tôi nói anh ấy sẽ không đưa ra giả định đó nữa.
Jonas Heidelberg

@Jasas, ah được rồi. Tôi đã không nhìn thấy các chỉnh sửa. Oh tốt, dù sao anh ấy cũng nhận được phiếu bầu mới; Tôi đoán đó là điểm để chức năng chỉnh sửa.
Synetech

Tôi đáng lẽ phải tin tưởng bạn trong lần sửa đổi mới nhất - tôi sẽ làm như vậy ngay bây giờ.
ChrisF

4

Tôi thực sự không thể cung cấp cho bạn bằng chứng, nhưng tôi nghĩ: Mỗi thư mục có một danh sách các thư mục và tệp mà nó chứa. Để làm cho nó có thể sử dụng các đường dẫn tương đối, mỗi thư mục cần có hai con trỏ đó - một cho chính nó .và một thư mục khác ở trên một cấp ..- hai con trỏ đó chỉ được tạo vào thời điểm thư mục được tạo.

Vì vậy, dấu thời gian ..thực sự không phải là dấu thời gian của thư mục ở trên mà là dấu thời gian của con trỏ đến thư mục trên.


Đúng rồi. Các ..entry được đưa ra dấu thời gian của ngày và thời gian hiện tại khi thư mục hiện hành được tạo ra.
Synetech
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.