FTPのLIST, NLST, MLST, MLSD コマンド

estis2013/06/22 (土) 21:05 に投稿

あるディレクトリ内が

$ ls
合計 4
drwxr-xr-x 2 user group 4096  6月 22 10:26 etc/
-rw-r--r-- 1 user group    0  6月 22 10:27 file
lrwxrwxrwx 1 user group   14  6月 22 10:26 web -> ../public_html/

となっている場合、
FTPコマンドの出力の違い。

LIST

drwxr-xr-x   3 user group       4096 Jun 22 10:27 .
drwxr-xr-x  21 user group       4096 Jun 22 10:26 ..
drwxr-xr-x   2 user group       4096 Jun 22 10:26 etc
-rw-r--r--   1 user group          0 Jun 22 10:27 file
lrwxrwxrwx   1 user group         14 Jun 22 10:26 web -> ../public_html

NLST

file
etc
..
web
.

MLSD

modify=20130622012712;perm=adfrw;size=0;type=file;unique=802UE40004;UNIX.group=101;UNIX.mode=0644;UNIX.owner=20397; file
modify=20130622012659;perm=flcdmpe;type=dir;unique=802UE40003;UNIX.group=101;UNIX.mode=0755;UNIX.owner=20397; etc
modify=20130622012617;perm=flcdmpe;type=pdir;unique=802UBB8001;UNIX.group=101;UNIX.mode=0755;UNIX.owner=20397; ..
modify=20130608071752;perm=flcdmpe;type=dir;unique=802UBB8002;UNIX.group=101;UNIX.mode=0755;UNIX.owner=20397; web
modify=20130622012712;perm=flcdmpe;type=cdir;unique=802UE40001;UNIX.group=101;UNIX.mode=0755;UNIX.owner=20397; .

MLST は、指定したディレクトリ・ファイルのみの情報を表示するだけで、MLSDとフォーマットは一緒。

LIST・NLSTのフォーマットは決まっておらず、OSに依存している。
そのため統一しようということで、MLST・MLSDが策定された。

上記の結果で、
webディレクトリは、シンボリックリンクなのだが、
MLSDの結果では
type=dir;
となっている。

ここは、
OS.unix=slink:path
だったのが、
OS.unix=symlink
になったようなのだが、
FTPサーバーのバージョンによるのかもしれない。

ProFTPDで確認したが、バージョンが不明。

Comments