FTPコマンドラインを使用して絶対パスでファイルを取得する

FTPコマンドラインを使用して絶対パスでファイルを取得する

FTP コマンドライン ユーティリティを使用すると、ファイルを取得するために各ディレクトリに移動するgetのではなく、FTP コマンドを使用して絶対パスでファイルを取得できるかどうか疑問に思っています。cd

入力すると

ftp> get pub/sdc.tgz

あるいはこれも(pub の前に 1 つまたは 2 つのスラッシュを付けます)

ftp> get /pub/sdc.tgz

ファイルが見つからないというメッセージが表示されます:

local: /pub/sdc.tgz remote: /pub/sdc.tgz
ftp: local: /pub/sdc.tgz: No such file or directory

しかし、私が代わりに

ftp> cd pub
ftp> get sdc.tgz

まったく問題なく動作します。

絶対パスでファイルを取得するための ftp コマンド ラインの正しい構文はありますか? それとも、まずそれを実行するcd必要がありますか?pub

(参考までに: 私がやろうとしているのは、毎日実行され、FTP サーバーにファイルを保存する PERL スクリプトを使用し、その後、1. ファイルを取得する (これを使用することに反対しているわけではありませんwget)、2. 取得後にファイルを削除する (これは FTP で行う必要があります) スクリプトを使用することです。2 番目のスクリプトによってファイルが削除されるようにして、将来、最初のスクリプトが FTP サーバーにファイルを保存する際に問題が発生しても、2 番目のスクリプトはファイルが存在しないためにエラーが発生したことを認識できるようにします。別の名前で保存することもできますが、異なる日付の大量のファイルで FTP サーバーを汚染したくはありません。)

答え1

これは、FTP の Get を使用し、ローカル パス/ファイル名を指定しないと、リモート ファイルと同じパス/名前を使用しようとするためです。

このエラー:

ftp: local: /pub/sdc.tgz: No such file or directory

ローカル マシン上でファイルが見つからないと表示されています。したがって、ローカル ドライブのルートに「pub」フォルダーがないと考えられます。

構文:得るリモートファイル [ローカルファイル]

パラメーター):

remote-file - コピーするリモート ファイルを指定します。

local-file - ローカル コンピューターで使用する名前を指定します。指定しない場合は、ファイルにはリモート ファイル名が付けられます。

次のようなことを試してください:

ftp> get pub/sdc.tgz c:\temp\sdc.tgz

多分

ftp> get pub/sdc.tgz .\sdc.tgz

現在のフォルダにダウンロードします。

見るここ詳細については得る使用法。

関連するSUの質問:ftp get コマンドで宛先を指定できますか?

答え2

ncftpgetクライアント マシンにインストールできる場合は、絶対パスを使用する を使用できます。

また、Perlを使用している場合は、FTP モジュール

関連情報