Đặc tả FTP cho biết đối số cho các lệnh liệt kê tệp (LIST
, NLIST
, MLSD
, v.v.) là tên đường dẫn. Vì vậy, không nên có ký tự đại diện, bất cứ điều gì.
RFC 959 (LIST
+ NLIST
):
2,2. NGỮ
...
pathname
tên đường dẫn được định nghĩa là các chuỗi ký tự mà phải đầu vào cho một hệ thống tập tin của người dùng để xác định một tập tin. tên đường dẫn thường chứa thiết bị và/hoặc tên thư mục, và tên file đặc điểm kỹ thuật. FTP chưa chỉ định quy ước tên đường dẫn tiêu chuẩn . Mỗi người sử dụng phải tuân theo các tập tin đặt tên ước của các hệ thống tập tin liên quan đến việc chuyển nhượng.
...
5.3.1.Các lệnh FTP
...
LIST [<SP> <pathname>] <CRLF>
NLST [<SP> <pathname>] <CRLF>
RFC 3659 (MLSD
):
2.2.2. Ký tự đại diện
Đối với các lệnh được xác định trong đặc điểm kỹ thuật này, tất cả các tên đường dẫn là được xử lý theo nghĩa đen. Tức là, đối với một tên đường dẫn được đưa ra như một tham số cho một lệnh, tệp có tên giống với tên đường dẫn được cho là được ngụ ý. Không có ký tự nào trong tên đường dẫn có thể được coi là đặc biệt hoặc "ma thuật", do đó không khớp mẫu (khác với chính xác bình đẳng) giữa tên đường dẫn và các tệp có trong số NVFS của máy chủ-FTP.
...
7.1. Format của MLSx yêu cầu
...
Cú pháp cho lệnh MLSx là:
mlst = "MLst" [ SP pathname ] CRLF
mlsd = "MLsD" [ SP pathname ] CRLF
Trên thực tế mặc dù nhiều máy chủ FTP làm hỗ trợ wilcards trong đối số. Nhưng vì đặc điểm kỹ thuật không cho phép điều đó, rõ ràng là không có tiêu chuẩn đã đặt cho các ký tự đại diện được hỗ trợ.
vsftpd hỗ trợ *
, ?
và {}
với LIST
. vsftpd không hỗ trợ MLSD
hiện đại.
proftpd hỗ trợ *
, ?
và []
. Nhưng chỉ cho LIST
. Nó rõ ràng không cho phép các ký tự đại diện với MLSD
hiện đại có nhận xét:
RFC3659 rõ ràng KHÔNG hỗ trợ ký tự glob. Vì vậy, hãy cảnh báo về điều này, nhưng hãy để lệnh tiếp tục như vậy.
PureFTPd hỗ trợ *
, ?
và []
cho cả LIST
và MLSD
.
FileZilla máy chủ hỗ trợ *
chỉ cả LIST
và MLSD
.
Nhưng nói chung, bạn không nên dựa vào máy chủ FTP để hỗ trợ bất kỳ ký tự đại diện nào.
Cách tiếp cận đáng tin cậy duy nhất là truy xuất danh sách thư mục đầy đủ và lọc các tệp cục bộ. Ví dụ: bạn có thể sử dụng cụm từ thông dụng (số Regex
class)