Tại sao một số tên tệp và thư mục Windows có dấu chấm ở phía trước chúng?
Mặc dù hầu hết chúng ta chỉ thấy tên tệp và thư mục bình thường trên các hệ thống Windows của mình, nhưng những người khác có thể đã gặp phải một điều bất ngờ hơn một chút - tên tệp và thư mục có dấu chấm trước mặt họ. Lý do tại sao điều này xảy ra? Bài hỏi và trả lời của SuperUser hôm nay có câu trả lời cho câu hỏi của người đọc rất tò mò.
Phiên hỏi và trả lời hôm nay đến với chúng tôi nhờ sự hỗ trợ của SuperUser - một phân ngành của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều khiển.
Hình ảnh lịch sự của Domiriel (Flickr).
Câu hỏi
Trình đọc siêu người dùng Niko Bellic muốn biết lý do tại sao một số tên tệp và thư mục Windows có một dấu chấm ở phía trước chúng:
Ví dụ: trong Tai liệu của tôi thư mục trên hệ thống Windows của tôi Tôi đã tìm thấy các thư mục sau:
- .ssh
- .lật đổ
Đây có phải là một số loại quy ước đặt tên mà tôi không biết?
Tại sao một số tên tệp và thư mục Windows có một dấu chấm ở phía trước chúng?
Câu trả lời
Grawity cộng tác viên SuperUser có câu trả lời cho chúng tôi:
Quy ước đặt tên này xuất phát từ các hệ điều hành giống Unix (như Linux hoặc OSX) trong đó nó có nghĩa là tập tin ẩn hoặc là danh mục. Nó hoạt động ở bất cứ đâu, nhưng công dụng chính của nó là ẩn các tệp cấu hình trong thư mục chính của bạn (tức là. ~ / .cache / hoặc ~ / .plan) Họ thường được gọi dấu chấm tập tin.
Chấm tập tin theo một cách nào đó, có thể được gọi là Unix truyền thống tương đương với Dữ liệu chương trình thư mục trên Windows. Trong khi đó, nhiều chương trình Linux đang được thay đổi để tuân theo đặc tả thư mục cơ sở XDG, chuyển cấu hình của chúng sang ~ / .config / và các dữ liệu khác để ~ / .cache / và ~ / .local / chia sẻ /. Điều này làm cho nó giống với AppData \ Chuyển vùng và AppData \ Địa phương.
Bạn có những thứ này .ssh và .lật đổ các thư mục trên Windows vì bạn đã sử dụng một số chương trình (cụ thể là OpenSSH và Subversion) đã được chuyển sang sử dụng API hệ thống Windows thay vì POSIX, nhưng chưa được điều chỉnh cho một số quy ước khác của Windows.
Đôi khi sự thích ứng này được bỏ qua một cách có chủ ý để làm cho cuộc sống dễ dàng hơn đối với những người sử dụng các môi trường giống Unix như Cygwin trên các hệ thống Windows của họ. Ví dụ, Cygwin cài đặt bộ công cụ tiêu chuẩn giống như Unix ls, mà bỏ qua Windows cờ ẩn và chỉ tôn vinh tập tin dấu chấm tên. Đồng bộ hóa cấu hình giữa các máy tính Windows và Linux / BSD / OSX của một cá nhân cũng dễ dàng hơn nếu nó được chia sẻ ở cùng một vị trí.
Những tệp này thường được tìm thấy trong thư mục nhà của người dùng (tức là. /home/name/.ssh trên Linux hoặc C: \ Người dùng \ tên \ .ssh trên Windows 7 trở lên). Rất hiếm khi chúng được đưa vào Các tài liệu hoặc là Tai liệu của tôi thư mục con (chúng không chứa tài liệu).
Như Rob Pike viết trên Google+, đây là một tính năng tình cờ:
Từ lâu, khi thiết kế hệ thống tập tin Unix đang được thực hiện, các mục . và Giáo dục xuất hiện để làm cho điều hướng dễ dàng hơn. Tôi không chắc, nhưng tôi tin Giáo dục đã viết lại trong phiên bản 2 của phiên bản 2 khi hệ thống tập tin trở nên phân cấp (nó có cấu trúc rất khác từ rất sớm). Khi một người gõ ls, tuy nhiên, các tệp này đã xuất hiện, vì vậy Ken hoặc Dennis đã thêm một bài kiểm tra đơn giản vào chương trình. Đó là trong trình biên dịch chương trình, nhưng mã trong câu hỏi tương đương với một cái gì đó như thế này:
- if (name [0] == '.') tiếp tục;
Tuyên bố này ngắn hơn một chút so với những gì nó cần phải có, đó là:
- if (strcmp (name, hung .và) == 0 || strcmp (name, phiên bản phạm lỗi) == 0) tiếp tục;
Nhưng này, thật dễ dàng và hai điều đã dẫn đến.
Đầu tiên, một tiền lệ xấu đã được thiết lập. Rất nhiều lập trình viên lười biếng khác đã giới thiệu các lỗi bằng cách đơn giản hóa tương tự. Các tập tin thực tế bắt đầu bằng dấu chấm thường bị bỏ qua khi chúng cần được tính.
Thứ hai, và tệ hơn nhiều, ý tưởng về một ẩn hoặc là tập tin dấu chấm đã được tạo ra. Kết quả là, nhiều lập trình viên lười biếng hơn bắt đầu thả các tập tin vào thư mục nhà của mọi người. Tôi không có nhiều phần mềm được cài đặt trên máy tính mà tôi đang sử dụng để gõ phần mềm này, nhưng thư mục nhà của tôi có khoảng một trăm dấu chấm tập tin và tôi thậm chí không biết hầu hết trong số họ là gì hoặc liệu họ có còn cần thiết không. Mỗi đánh giá tên tệp đi qua thư mục nhà của tôi bị làm chậm bởi bùn tích lũy này.
Có một cái gì đó để thêm vào lời giải thích? Tắt âm thanh trong các ý kiến. Bạn muốn đọc thêm câu trả lời từ những người dùng Stack Exchange am hiểu công nghệ khác? Kiểm tra chủ đề thảo luận đầy đủ ở đây.