La especificación de FTP dice que el argumento para los comandos de listado de archivos (LIST
, NLIST
, MLSD
, etc.) es una ruta de acceso. Entonces no debería haber ningún comodín, en absoluto.
RFC 959 (LIST
+ NLIST
):
2,2. TERMINOLOGÍA
... se define
pathname
nombre de ruta que es la cadena de caracteres que debe ser entrada a un sistema de archivos por un usuario con el fin de identificar un archivo. El nombre de ruta normalmente contiene los nombres de dispositivo y/o directorio y la especificación de nombre de archivo . FTP aún no especifica una convención estándar de nombre de ruta . Cada usuario debe seguir el nombre del archivo convenciones de los sistemas de archivos involucrados en la transferencia.
...
5.3.1.Comandos FTP
...
LIST [<SP> <pathname>] <CRLF>
NLST [<SP> <pathname>] <CRLF>
RFC 3659 (MLSD
):
2.2.2. Wildcarding
Para que los comandos definidos en esta especificación, todos los nombres de las rutas sean sean tratados literalmente. Es decir, para una ruta dada como un parámetro a un comando, se implica el archivo cuyo nombre es idéntico al nombre de ruta dado . No se pueden tratar caracteres de la ruta como especial o "mágico", por lo que no se permite ninguna coincidencia de patrón (excepto para la igualdad exacta de ) entre la ruta asignada y los archivos presentes en el NVFS del servidor FTP.
...
7,1. Formato de MLSx Pide
...
La sintaxis del comando es MLSx:
mlst = "MLst" [ SP pathname ] CRLF
mlsd = "MLsD" [ SP pathname ] CRLF
En la práctica, aunque muchos servidores FTP sí apoyo wilcards en el argumento. Pero como la especificación no lo permite, obviamente no existe un estándar establecido para los comodines admitidos.
vsftpd apoya *
, ?
y {}
con el LIST
. vsftpd no es compatible con el MLSD
moderno.
proftpd apoya *
, ?
y []
. Pero solo para el LIST
. No permite explícitamente los comodines con el MLSD
moderno con un comentario:
RFC3659 explícitamente NO admite caracteres glob. Así que advierta sobre esto, pero deje que el comando continúe como está.
PureFTPd apoya *
, ?
y []
tanto para el LIST
y la MLSD
.
servidor de FileZilla apoya *
única tanto para el LIST
y la MLSD
.
Pero, en general, no debe confiar en el servidor FTP para admitir ningún comodín.
El único enfoque confiable es recuperar una lista completa de directorios y filtrar los archivos localmente. Por ejemplo, puede usar una expresión regular (Regex
class)