Đôi khi bạn có thể nhận được kết quả không mong muốn khi chạy lệnh, vì vậy việc tìm hiểu “lý do” đằng sau kết quả có thể rất thú vị. Với ý nghĩ đó, bài đăng Hỏi & Đáp của SuperUser hôm nay có câu trả lời cho câu hỏi của một độc giả tò mò.
Phiên Hỏi & Đáp hôm nay đến với chúng tôi với sự hỗ trợ của SuperUser — một phần của Stack Exchange, một nhóm các trang web Hỏi & Đáp do cộng đồng điều hành.
Câu hỏi
Trình đọc SuperUser Lưu Vĩnh Phúc muốn biết tại sao dir *. * Liệt kê tất cả các tệp và thư mục:
Khi tôi chạy lệnh dir *. *, Nó tạo ra kết quả không mong muốn. Ngay cả các tệp và thư mục không có bất kỳ dấu chấm nào trong tên cũng được liệt kê. Ví dụ:
Tại sao vậy? Có cách nào để chỉ liệt kê các tệp có dấu chấm không?
Tại sao dir *. * Liệt kê tất cả các tệp và thư mục?
Câu trả lời
Người đóng góp SuperUser Fleet Command có câu trả lời cho chúng tôi:
Lệnh DIR xuất phát từ thời điểm:
- Dấu chấm (.) Không được phép làm ký tự trong tên tệp hoặc thư mục
- Tên tệp và thư mục bị hạn chế ở 8 ký tự cho tên và 3 ký tự cho phần mở rộng
Do đó, theo tiêu chuẩn đó, *. * Có nghĩa là bất kể tên và bất kỳ phần mở rộng nào. Nó không có nghĩa là một chuỗi có chứa “.”, Có thể có hoặc không có các ký tự trước hoặc sau “.”.
Chính sách của Microsoft là duy trì khả năng tương thích ngược, vì vậy cách hiểu về *. * Được giữ lại. Nhưng trong Windows PowerShell, *. * Có nghĩa là một chuỗi có chứa “.”, Có thể có hoặc không có các ký tự trước hoặc sau “.”.
Có điều 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 toàn bộ chủ đề thảo luận ở đây.