ftpのdirコマンドで日付順に表示するTech TIPS

ftpのdirコマンドには、2つの引数を指定できる。第1引数にはファイル名もしくはオプションのいずれかを指定する。第2引数には結果の出力先ファイル名を指定する。省略すると画面に表示される。dirで利用可能なオプションには、「-r(逆順表示)」「-t(日付順表示)」「-R(再帰表示)」「-c(作成日表示)」などがある。

» 2006年07月01日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

ftpのdirコマンドで日付順に表示する

対象OS:Windows 2000/Windows XP/Windows Server 2003


FTPの「dir」コマンドで大量のファイルが表示されてしまう!

 ftpコマンドでFTPサーバに接続した場合、通常はdirコマンドを使ってファイルの一覧を表示させ、どのファイルを取得するか(getするか)を判断する。

 しかし引数なしでdirコマンドを実行すると、カレントフォルダにあるすべてのファイルが表示され、ファイルが大量にあると、目的のものを探すのが困難になる。

 dirには1つ、もしくは2つの引数を指定できるので、こういう場合はファイル名のワイルドカードを引数として指定し、対象とするファイルを絞り込めばよい。例えば「dir *.txt」とすれば、拡張子が.txtにマッチするファイルだけが表示される。

ftp> dir *.txt ……テキストファイル一覧の表示
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
-r-xr-xr-x   1 owner    group           10255 Jul 19  2005 files-diff.txt
-r-xr-xr-x   1 owner    group           19028 Apr 14 17:39 g.txt
-r-xr-xr-x   1 owner    group            1178 Jul  1 10:58 OEWABLog.txt
-r-xr-xr-x   1 owner    group             636 Mar  8  4:11 quotatest.txt
-r-xr-xr-x   1 owner    group             990 Jun 15 12:11 ReadMe.txt
-r-xr-xr-x   1 owner    group          698838 May 22 18:32 setuplog.txt
-r-xr-xr-x   1 owner    group         1017398 Jul 18  2005 x1.txt
……(以下省略)……



dirコマンドの第2引数:出力先の指定

 dirコマンドの第2引数は、dirの結果をどこへ出力するかを指定するためのものである。省略すると、クライアント側の画面に表示されるが、例えば「dir *.txt filelist.txt」のように指定すると、「dir *.txt」の結果が、ローカル側のfilelist.txtというファイルに保存される。実行後、コマンドプロンプトへ戻って(「!」コマンドを使用するとよい)、その内容を確認すればよいだろう。

 ちなみにftpクライアントには、dirではなく、lsというコマンドもある。例えば「ls *.txt」とすると、ファイル名だけが表示される(日付や属性は表示されない。コマンドプロンプトにおける「dir /b」のようなもの)。以下、dirコマンドを例に解説する。

dirコマンドの表示オプションを指定する

 前述の方法ではファイルが多すぎて分かりづらい場合は、例えば日付順にソートして最新のファイルを素早く見つける、といったこともできる。

 dirコマンドに渡す引数(上の例では「*.txt」)は、実はファイル名でなくてもよい。この第1引数は、実際にはFTPサーバ側のdirコマンドの処理プログラムにそのまま渡されるだけなので、ここで日付順にソートするようなオプションを指定すればよいのである。ただし、引数は1つしか渡せないことに注意していただきたい。ファイル名指定かオプションのいずれか1つだけしか利用できない。

 FTPのサーバ側でどのようなコマンドが動作しているかは、FTPサーバの仕様にもよるが、一般的にはUNIX/Linuxのlsコマンド(もしくはその相当コマンド)が動作している。Windows Server OSに付属しているIISでもこれは同じで、lsコマンドと同等のものが動作している。lsコマンドは、Windows OS(もしくはMS-DOS)のコマンドプロンプトのdirコマンドに相当するコマンドである。

 一番簡単なオプション例としては、例えば「-r」がある。これは結果を逆順(reverseの略)に表示させるオプションであり、「dir -r」とすると、「dir」とは逆順(つまり名前の逆順)で表示される。

 なおコマンドプロンプトのdirコマンドと違って、オプションの開始文字は「/」ではなく「-」である。

dirコマンドで日付順に表示する

 ファイル名を日付順にソートして出力するには、「-t(昇順)」もしくは「-tr(降順)」オプションを利用する。

ftp> dir -t ……ファイル名を古いものから順に表示
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
-r-xr-xr-x   1 owner    group          139264 Sep  1  2004 alcrmv.exe
-r-xr-xr-x   1 owner    group          208896 Nov  5  2004 alcupd.exe
-r-xr-xr-x   1 owner    group           77824 Dec 22  2004 SOUNDMAN.EXE
-r-xr-xr-x   1 owner    group           10752 May  2  2005 hh.exe
-r-xr-xr-x   1 owner    group           16690 May 20  2005 password1.png
……(以下省略)……



その他のdirコマンドのオプション

 「-t」オプション以外にもいくつか利用できるオプションがあるが、それらはやはりUNIX/Linuxのlsコマンドに準じている。

 例えば「dir -R」とすると、サブフォルダの内容もすべてたどって表示するし(コマンドプロンプトにおける「dir /s」に相当)、「dir -c」とするとファイル/フォルダの最終変更日付ではなく、作成日付を表示し、その順番で表示する(逆順にするには「dir -cr」)。またこれらを組み合わせて利用してもよい(例:「dir -Rt」)。

 この他にも、「-F(フォルダ名の最後に/を付ける)」、「-C(ファイル名部分だけを表示する。lsコマンドに相当)」などもあるが、あまり使うことはないだろう。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。