ターミナルでFTPを介してフォルダをダウンロードするにはどうすればよいですか?


回答:


9

mget付属のFTPバイナリで取得できる最も近いものです。mkdirとcd / lcdを実行してから、次のようなパターンに一致するすべてのファイルを取得する必要があります*

promptトグルが便利になることがあります。

FTPは、ファイルのコンテナとしてのディレクトリではなく、ディレクトリ内で機能します。仕事を終わらせる必要があり、ftpが使用できる唯一のツールである場合は、expectスクリプトを組み合わせてftpを実行することができます。

ありがたいことに、scp| rsync| wgetディレクトリ全体のファイルを取得します。


わかりました...つまり、一度にフォルダ全体をダウンロードすることはできません。個別のファイルをダウンロードする必要がありますよね?
daviesgeek

うん。ftpがタスクに対応していれば、誰もがwget、sftp、scp、rsyncを表示することはありません。
bmike

ありがとう... SFTPはフォルダのダウンロードを許可しますか?
daviesgeek

おっと(ごめん)-いいえ。sftpはftpと同じ構文および制限です-ftp認証の代わりにsshを使用して接続を保護するだけです。
bmike

FTPプロトコルにバインドしている場合は、lftpを使用してディレクトリツリーを再帰的にダウンロードできます。この問題の古い解決策。
Ian C.

7

別の方法はカールを使用することです

curl ftp://ftp.com/mp3/* --user login:password -o /myfolder/*

これは機能していると思います、またはファイルごとに

curl ftp://ftp.com/mp3/mymusic.zip --user login:password -o mymusic.zip

これがお役に立てば幸いです。


OK、ありがとうございましたが、FTPを介してこれを行う方法はありますか?
daviesgeek

驚くばかり!curlのFTPの傾向を知りませんでした。ありがとう!
bmike

ええ...私もそうではありません。おそらくもっと頻繁に使用します。
daviesgeek

2
私はあなたの提案を試みていますが、これを得ています:curl: (78) RETR response: 550
Omer

1
curlこれは絶対に処理できません。wgetできる。
Ken Sharp

3

scp (documentation)または(documentation)を使用しますsftp

scp -r login@myserverip:/remote/directory/path/ mylocaldirectory

それは私が求めていることではありません。私の質問は、ターミナルでFTP経由でフォルダをダウンロードするにはどうすればよいですか?つまり、フォルダをダウンロードするためにFTPのどのコマンドを使用しますか?
daviesgeek

2
sftpはFTP +1よりはるかに優れています
bmike

1
@bmike:はい、しかし古いFTPサーバーはsftpをサポートしないかもしれません。
PLL

3

私は自分のWebサーバーから22'000以上のWebカメラの写真をダウンロードする必要がありましたが、これはFinderと私のFTPプログラムCyber​​Duckの両方にとって少し難題です。

だから私は(@bmikeの答えに基づいて)次のことをしました:

mkdir ~/Desktop/image-dump-myserver
ftp ftp://myuser@myserver.com
# enter password

# You're now in the ftp console (where the world is still okay)

# Set the local folder
lcd ~/Desktop/image-dump-myserver

# cd into the desired folder (`ls`, `pwd` etc. all work here)
cd /httpdocs/images

# Toggle the interactive mode
prompt

# Download the desired files (all the images in my case)
mget *.jpg

次に、ファイルが目的のフォルダにダウンロードされます。

local: image1433509292_1582.jpg remote: image1433509292_1582.jpg  
229 Entering Extended Passive Mode (|||50001|)  
150 Opening BINARY mode data connection for image1433509292_1582.jpg (63626 bytes)  
100% |***********************************| 63626        1.51 MiB/s    00:00 ETA  
226 Transfer complete  
63626 bytes received in 00:00 (0.98 MiB/s)  

local: image1427279963_0841.jpg remote: image1427279963_0841.jpg  
229 Entering Extended Passive Mode (|||50053|)  
150 Opening BINARY mode data connection for image1427279963_0841.jpg (67194 bytes)  
100% |***********************************| 67194        1.64 MiB/s    00:00 ETA  
226 Transfer complete  
67194 bytes received in 00:00 (1.04 MiB/s) 

local: image1439798493_1783.jpg remote: image1439798493_1783.jpg  
229 Entering Extended Passive Mode (|||50357|)  
150 Opening BINARY mode data connection for image1439798493_1783.jpg (48876 bytes)  
100% |***********************************| 48876        1.80 MiB/s    00:00 ETA  
226 Transfer complete  
48876 bytes received in 00:00 (996.81 KiB/s)  
....  

3

私は使っている

wget -r -l 10 --ftp-user='FTP_USER' --ftp-password='FTP_PASSWORD' \
    ftp://ftp.server.com/folder_to_download/*

残念ながら、wget並行ダウンロードはサポートされていません。


0

この指示に従ってください:

タイプ

ftp

次に、あなたはftpのように見えます

ftp>

次に、サーバーのIPを開きます

ftp> open xx.xxx.xxx.xx

それからそれはユーザー名を尋ねます、あなたは提供します

Name:(your ftp server): your_username

次に、パスワードを要求します

Password:  your_password

次に、ログインしてftp>シェルをもう一度表示します。「ls」と入力してすべてのファイルをリストし、cdを使用してinixのようにナビゲートできます。

あなたがあなたのファイル名を見つけたとき、あなたはそれをダウンロードすることができます

ftp> get filename

et voila、ファイルはシェルローカルを開いたディレクトリにダウンロードされます

ディレクトリをダウンロードすることはできませんが、ディレクトリに移動して、すべてのファイルなど、複数をダウンロードすることができます

タスク:複数のファイルをダウンロードする

リモートFTPサーバーからローカルシステムに複数のファイルをコピーするには、次のようにmgetコマンドを使用する必要があります。各ファイルを転送する前に、はい/いいえ(Y / N)の回答を求められる場合があります(ftpクライアントに-iオプションを渡すことでプロンプトを無効にできます)。すべてのファイルをダウンロードするには、次のように入力します。ftp> mget *

http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ cheers からの情報


ftp unixツールはOS Xから削除されました(Sierraでだと思いますか?)。
benwiggy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.