ftpのdirコマンドで日付順に表示する:Tech TIPS
ftpのdirコマンドには、2つの引数を指定できる。第1引数にはファイル名もしくはオプションのいずれかを指定する。第2引数には結果の出力先ファイル名を指定する。省略すると画面に表示される。dirで利用可能なオプションには、「-r(逆順表示)」「-t(日付順表示)」「-R(再帰表示)」「-c(作成日表示)」などがある。
対象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コマンドに相当)」などもあるが、あまり使うことはないだろう。
■この記事と関連性の高い別の記事
- IIS 6.0のFTPサーバでユーザーフォルダを分離する(基本編)(TIPS)
- IIS 6.0のFTPサーバでユーザーフォルダを分離する(Active Directory編)(TIPS)
- FTPサーバでユーザーフォルダを設定する(TIPS)
- FTPの仮想ディレクトリに対応するフォルダを作成する(TIPS)
- クライアント版WindowsでIISをインストールする(TIPS)
- クライアント版Windowsに付属するIISの制限(TIPS)
- アカウントを指定してFTPサイトへ接続する(TIPS)
- FTPをファイアウォールフレンドリモードに変更する方法(TIPS)
- Windowsのdirコマンドでファイル名の一覧を取得する(TIPS)
- これだけは覚えておきたいWindowsのコマンドプロンプトの使い方(TIPS)
- ftpのgetコマンドでテキストファイルの内容を素早く確認する(TIPS)
- Windowsのftpコマンドをスクリプトで使う(TIPS)
- Windowsのforfilesコマンドで条件に合うファイルを取り出して処理する(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.