Jak mogę pobierać foldery przez FTP w terminalu?


Odpowiedzi:


9

mgetjest najbliższy dostępnemu plikowi binarnemu FTP. Musisz mkdir i cd / lcd, a następnie pobrać wszystkie pliki niż pasujące do wzorca*

promptPrzełącznik może się przydać.

FTP działa w obrębie katalogu, a nie w katalogach jako kontenerach plików. Jeśli absolutnie musiałeś wykonać zadanie, a ftp było jedynym narzędziem, którego możesz użyć - możesz skompletować expectskrypt, aby uruchomić ftp za ciebie.

Na szczęście istnieją alternatywy takie jak scp| rsync| wgetaby uzyskać pliki o wartości katalogów całych.


Ok ... więc najważniejsze jest to, że nie mogę pobrać całego folderu jednocześnie; Muszę pobrać poszczególne pliki, prawda?
— daviesgeek

Tak. Wszyscy nie pokazaliby wget, sftp, scp i rsync, gdyby ftp sprostało zadaniu.
— bmike

Dzięki ... czy SFTP pozwala na pobieranie folderów?
— daviesgeek

Ups (przepraszam) - nie. sftp to ta sama składnia i ograniczenia ftp - po prostu zabezpieczanie połączenia za pomocą ssh zamiast uwierzytelniania ftp.
— bmike

Jeśli jesteś związany protokołem FTP, możesz użyć lftp do rekurencyjnego pobierania drzewa katalogów. Old schoolowe rozwiązanie tego problemu.
— Ian C.

7

Innym sposobem jest użycie curl

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

Myślę, że to działa lub plik po pliku

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

Mam nadzieję, że to pomogło.


OK, dziękuję bardzo, ale czy można to zrobić za pośrednictwem FTP?
— daviesgeek

Niesamowite! Nie byłem świadomy skłonności curla do FTP. Dzięki!
— bmike

Tak ... ja też nie. Prawdopodobnie użyję tego częściej.
— daviesgeek

2
Wypróbowuję twoją sugestię, ale dostaję to:curl: (78) RETR response: 550
— Omer

1
curlabsolutnie nie mogę sobie z tym poradzić. wgetmogą.
— Ken Sharp

3

Użyj scp (dokumentacja) lub sftp (dokumentacja)

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

Nie o to pytam. Moje pytanie brzmi: jak pobrać folder przez FTP w terminalu? Innymi słowy, jakich poleceń na FTP używam do pobierania folderu?
— daviesgeek

2
sftp jest znacznie lepszy od FTP +1
— bmike

1
@bike: tak, ale starsze serwery ftp mogą nie obsługiwać sftp.
— PLL,

3

Musiałem pobrać ponad 22 000 zdjęć z kamery internetowej z mojego serwera, co jest wyzwaniem zarówno dla Findera, jak i mojego programu FTP CyberDuck.

Zrobiłem więc następujące (na podstawie odpowiedzi @ 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

Następnie pliki są pobierane do żądanego folderu:

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

ja używam

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

Niestety wgetnie obsługuje pobierania równoległego.


0

postępuj zgodnie z tą instrukcją:

rodzaj

ftp

to wyglądasz jak ftp

ftp>

następnie otworzysz ip serwera

ftp> open xx.xxx.xxx.xx

wtedy poprosi o nazwę użytkownika, podasz

Name:(your ftp server): your_username

wtedy poprosi o hasło

Password:  your_password

wtedy powinieneś być zalogowany i ponownie zobaczyć powłokę ftp>, możesz wpisać „ls”, aby wyświetlić listę wszystkich plików, i możesz nawigować jak w inix z cd

kiedy znajdziesz swoją nazwę pliku, możesz ją pobrać

ftp> get filename

i voila, plik zostanie pobrany do katalogu, z którego lokalnie otworzyłeś powłokę

nie możesz pobrać katalogów, ale możesz przejść do swojego katalogu i pobrać wiele np. wszystkich plików

Zadanie: pobierz wiele plików

Aby skopiować wiele plików ze zdalnego serwera ftp do systemu lokalnego, należy użyć polecenia mget w następujący sposób. Możesz zostać poproszony o odpowiedź tak / nie (T / N) przed przesłaniem każdego pliku (możesz wyłączyć monit, przekazując opcję -i do klienta ftp). Aby pobrać wszystkie pliki, wpisz: ftp> mget *

informacje z http://www.cyberciti.biz/faq/linux-unix-ftp-commands/ cheers


Narzędzie ftp unix zostało usunięte z OS X (jak sądzę w Sierra?).
— benwiggy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.