FTP 사양에 따르면 파일 목록 명령 (LIST
, NLIST
, MLSD
등)에 대한 인수는 경로 이름입니다. 따라서 와일드 카드가 없어야합니다.
RFC 959 (+ NLIST
LIST
)
2.2.
pathname
경로 이름이 정의 된 용어
는 ... 파일을 식별하기 위해 사용자가 파일 시스템에 입력해야합니다 문자열이 될 수 있습니다. 경로 이름에는 일반적으로 장치 및/또는 디렉토리 이름이 포함되고 파일 이름 지정은 입니다. FTP는 아직 표준 경로 이름 규칙을 지정하지 않습니다. 각 사용자는 전송에 관련된 파일 시스템 규칙 의 이름을 따라야합니다.
...
5.3.1.
2.2.2 : FTP는 ... NLST [<SP> <pathname>] <CRLF>
RFC 3659 (MLSD
)
LIST [<SP> <pathname>] <CRLF>
명령. 와일드 카드 문자
이 사양에 정의 된 명령의 경우 모든 경로 이름은 으로 처리됩니다. 즉, 명령에 대해 매개 변수로 제공된 경로 이름의 경우, 주어진 경로 이름과 동일한 이름의 파일이 이됩니다. 경로명의 어떤 문자도 special 또는 "magic"으로 취급 될 수 없으므로 주어진 경로 이름과 server-FTP의 NVFS에있는 파일 사이의 패턴 일치 (정확히 동등성 제외)가 허용되지 않습니다.
...
7.1. MLSx의 형식은 MLSx 명령에 대한
...
구문을 요청입니다 : 실제로
mlst = "MLst" [ SP pathname ] CRLF
mlsd = "MLsD" [ SP pathname ] CRLF
많은 FTP 서버는 인수에 wilcards을지지 않습니다하지만. 그러나 사양에서 허용하지 않으므로 지원되는 와일드 카드에 대한 표준이 설정되지 않았습니다.
vsftpd를는 *
, ?
및 LIST
와 {}
지원한다. vsftpd는 현대 MLSD
을 지원하지 않습니다.
proftpd에는 *
, ?
및 []
지원합니다. 그러나 LIST
에만 해당됩니다. 명시 적으로 현대의 와일드 카드에 MLSD
주석이있는 것을 허용하지 않습니다.
RFC3659는 명시 적으로 glob 문자를 지원하지 않습니다. 따라서 에 대해 경고하지만 명령을 그대로 두십시오.
pureftpd는 LIST
및 MLSD
모두 *
, ?
및 []
을 지원한다.
FileZilla의 서버는 *
에만 모두 LIST
과 MLSD
을 지원합니다.
일반적으로 와일드 카드를 지원하기 위해 FTP 서버에 의존해서는 안됩니다.
신뢰할 수있는 유일한 방법은 전체 디렉터리 목록을 검색하고 파일을 로컬로 필터링하는 것입니다. 예를 들어 정규식 (Regex
class)을 사용할 수 있습니다.