एफ़टीपी विनिर्देश कहता है कि फाइलिंग कमांड फाइल करने के लिए तर्क (LIST
, NLIST
, MLSD
, आदि) एक पथनाम है। तो कोई वाइल्डकार्ड नहीं होना चाहिए, जो भी हो।
RFC 959 (LIST
+ NLIST
):
2,2। शब्दावली
...
pathname
पथ परिभाषित किया गया है चरित्र स्ट्रिंग एक फाइल सिस्टम के लिए इनपुट के लिए एक फ़ाइल की पहचान करने में किसी उपयोगकर्ता द्वारा जो होना चाहिए किया जाना है। पथनाम में आमतौर पर डिवाइस और/या निर्देशिका नाम होते हैं, और फ़ाइल नाम विनिर्देशन। एफ़टीपी अभी तक मानक पथनाम सम्मेलन निर्दिष्ट नहीं करता है। प्रत्येक उपयोगकर्ता को हस्तांतरण में शामिल फाइल सिस्टम के सम्मेलन नामकरण फ़ाइल का पालन करना होगा।
...
5.3.1।एफ़टीपी
आदेशों ...
LIST [<SP> <pathname>] <CRLF>
NLST [<SP> <pathname>] <CRLF>
RFC 3659 (MLSD
):
2.2.2। वाइल्डकार्डिंग
इस विनिर्देशन में परिभाषित आदेशों के लिए, सभी पथनाम को शाब्दिक रूप से माना जाना चाहिए। वह है, एक पैरामीटर के रूप में दिए गए पथनाम के लिए, जिस फ़ाइल का नाम दिया गया पथनाम के समान है, का अर्थ है। पथनाम से कोई भी वर्ण विशेष या "जादू" के रूप में नहीं माना जा सकता है, इस प्रकार दिए गए पथनाम के बीच कोई पैटर्न मिलान नहीं (सटीक समानता के अलावा) और सर्वर में मौजूद फ़ाइलों को एफ़टीपी की अनुमति है।
...
7,1। MLSx का प्रारूप अनुरोध
...
वाक्य रचना MLSx आदेश के लिए है:
mlst = "MLst" [ SP pathname ] CRLF
mlsd = "MLsD" [ SP pathname ] CRLF
व्यवहार में, हालांकि कई FTP सर्वर बहस में wilcards का समर्थन करते हैं। लेकिन जैसा विनिर्देशन इसकी अनुमति नहीं देता है, वहां स्पष्ट रूप से समर्थित वाइल्डकार्ड के लिए कोई सेट मानक नहीं है।
vsftpd*
, ?
और LIST
साथ {}
का समर्थन करता है। vsftpd आधुनिक MLSD
का समर्थन नहीं करता है।
proftpd*
, ?
और []
का समर्थन करता है। लेकिन केवल LIST
के लिए। यह स्पष्ट रूप से वाइल्डकार्ड को MLSD
के साथ टिप्पणी के साथ अनुमति नहीं देता है:
आरएफसी 3659 स्पष्ट रूप से ग्लोब वर्णों का समर्थन नहीं करता है। तो के बारे में चेतावनी दें, लेकिन आदेश जारी रखें।
pureftpd*
, ?
और []
दोनों LIST
और MLSD
के लिए समर्थन करता है।
FileZilla सर्वर*
केवल दोनों LIST
और MLSD
का समर्थन करता है।
लेकिन सामान्य रूप से, आपको किसी भी वाइल्डकार्ड का समर्थन करने के लिए एफ़टीपी सर्वर पर भरोसा नहीं करना चाहिए।
एक संपूर्ण निर्देशिका सूची पुनर्प्राप्त करने और स्थानीय रूप से फ़ाइलों को फ़िल्टर करने के लिए एकमात्र विश्वसनीय दृष्टिकोण है। उदाहरण के लिए आप नियमित अभिव्यक्ति का उपयोग कर सकते हैं (Regex
class)