Terminal'deki FTP aracılığıyla klasörleri nasıl indirebilirim?


Yanıtlar:


9

mgetdahil olan FTP ikili ile alabileceğiniz en yakın. Sen mkdir ve cd / lcd ve sonra gibi bir desen maç daha tüm dosyaları almak zorunda*

promptGeçiş kullanışlı gelebilir.

FTP, dizinlerde dosya kapları olarak değil, bir dizin içinde çalışır. Kesinlikle işi yapmak zorunda olsaydınız ve ftp kullanabileceğiniz tek araçsa - sizin için ftp'yi expectsürmek için bir komut dosyası birlikte çalışabilirdiniz .

Neyse ki scp| rsync| wgettüm dizin dosyaları değer almak için.


Tamam ... sonuçta bir kerede bütün bir klasörü indiremiyorum; Dosyaları tek tek indirmem gerekiyor, değil mi?
daviesgeek

Evet. Eğer ftp göreve hazır olsaydı herkes wget, sftp, scp ve rsync göstermezdi.
bmike

Teşekkürler ... SFTP klasör indirmeye izin veriyor mu?
daviesgeek

Hata! Hayır. sftp, ftp ile aynı sözdizimi ve sınırlamalarıdır - sadece ftp kimlik doğrulaması yerine ssh kullanarak bağlantıyı güvence altına alır.
bmike

FTP protokolüne bağlıysanız , bir dizin ağacının yinelemeli olarak indirilmesi için lftp'yi kullanabilirsiniz . Bu soruna eski okul çözümü.
Ian C.

7

Başka bir yol kıvırmak kullanmaktır

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

Bence bu çalışıyor ya da dosya dosya

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

Umarım bu yardımcı olmuştur.


Tamam, çok teşekkür ederim, ama FTP aracılığıyla bunu yapmanın bir yolu var mı?
daviesgeek

Müthiş! Curl'un FTP eğilimlerinden habersizdim. Teşekkürler!
bmike

Evet ... ikisi de ben değildim. Muhtemelen daha sık kullanacağım.
daviesgeek

2
Önerinizi deniyorum ama bunu alıyorum:curl: (78) RETR response: 550
Ömer

1
curlkesinlikle bunun üstesinden gelemez. wgetYapabilmek.
Ken Sharp

3

Kullanım scp (belgeler) veya sftp (belgeler)

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

İstediğim bu değil. Sorum şu: Terminal'de FTP aracılığıyla nasıl klasör indirebilirim? Başka bir deyişle, bir klasörü indirmek için FTP'deki hangi komutları kullanırım?
daviesgeek

2
sftp FTP +1
bmike'den

1
@bmike: evet, ancak eski ftp sunucuları sftp'yi desteklemeyebilir.
PLL

3

Hem Finder hem de FTP programım CyberDuck için biraz zorlayıcı olan web sunucumdan 22.000 + web kamerası resmi indirmek zorunda kaldım.

Bu yüzden aşağıdakileri yaptım (@ bmike'ın cevabına dayanarak):

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

Ardından dosyalar istenen klasöre indirilir:

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

Ben kullanıyorum

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

Maalesef wgetparalel indirmeleri desteklemiyor.


0

bu talimatları izleyin:

tip

ftp

o zaman ftp gibisin

ftp>

o zaman ip sunucusunu aç

ftp> open xx.xxx.xxx.xx

o zaman kullanıcı adını soracak,

Name:(your ftp server): your_username

o zaman şifre isteyecek

Password:  your_password

giriş yapmalı ve ftp> kabuğunu tekrar görmelisiniz, tüm dosyaları listelemek için "ls" yazabilir ve cd ile inix gibi gezinebilirsiniz

dosya adınızı bulduğunuzda indirebilirsiniz

ftp> get filename

et voila, dosya yerel olarak kabuk açtığınız dizine indirilecektir.

directorys'i indiremezsiniz, ancak dizininize gidebilir ve birden fazla dosyayı indirebilirsiniz.

Görev: Birden Çok Dosya İndirme

Uzak ftp sunucusundan yerel sisteme birden fazla dosya kopyalamak için mget komutunu aşağıdaki gibi kullanmanız gerekir. Her dosyayı aktarmadan önce evet / hayır (E / H) yanıtı istenebilir (ftp istemcisine -i seçeneğini ileterek istemi devre dışı bırakabilirsiniz). Tüm dosyaları indirmek için şunu girin: ftp> mget *

http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ şereflerinden bilgi


Ftp unix aracı OS X'ten kaldırıldı (Sierra'da sanırım?).
benwiggy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.