polecenie sftp, aby pobrać / pobrać plik .tar.gz


16

Wydawało mi się, że znam sftpkomendy w Uniksie i zgodnie z moją wiedzą jest to komenda używana do pobrania compressedpliku z serwera

sftp pobierz plik.tar.gz

Ale kiedy wypróbowałem to polecenie, plik został opróżniony, to znaczy, że rozmiar pliku wynosi 0 i nie wiem, dlaczego tak się dzieje. Czy jest jakieś inne polecenie specjalnie dla .tar.gztypu plików. Jaka jest procedura uzyskania tych skompresowanych plików. Używam terminala Mac.


2
Nie musisz podawać adresu serwera? Jakie jest dokładnie wpisane polecenie?
— Faheem Mitha,

@FaheemMitha Wszedłem na serwer za pomocą polecenia sftp. serwer użytkownika [at] sftp i terminal, z którego korzystałem> get filename.tar.gz
— GIRI,

Odpowiedzi:


24

get jest legalnym poleceniem sftp, ale nie można go używać w ten sposób.

Prawidłowa składnia do pobrania filename.tar.gzna komputer Mac to:

sftp user@host:/path/to/filename.tar.gz /some/local/folder

(Zamień userna użytkownika, którego używasz do łączenia się ze zdalnym serwerem, zamień hostna nazwę zdalnego serwera).

W tar.gzpowyższym poleceniu nie ma nic specjalnego dla plików, jest ono ogólne dla każdego rozszerzenia.

Aby użyć get, musisz najpierw wejść w tryb interaktywny:

  1. Nawiąż połączenie ze zdalnym serwerem:

    sftp user@host
    

    Poczekaj, aż >pojawi się monit sftp w nowym wierszu - teraz możesz pisać polecenia.

  2. Zmień ścieżkę zdalną na /path/to:

    cd /path/to/
    
  3. Zmień ścieżkę lokalną na /some/local/folder:

    lcd /some/local/folder
    
  4. Użyj, getaby pobrać plik:

    get filename.tar.gz
    

Nie, to nie działa Próbowałem twoich sugestii. Próbowałem zmienić lokalne ścieżki, ale bez efektu.
— GIRI,

Czy możesz opublikować dane wyjściowe polecenia sftp?
— jaume

Nie ma takiej rzeczy wyjściowej, ponieważ typ sftp > get filename.tar.gznie jest pobierany, a pamięć zmienia się na 0.
— GIRI

Ani sftp > get filename.tar.gzteż, jak napisano w pytaniu, nie sftp get filename.tar.gzbędzie działać. Prawidłowa składnia jest taka sftp user@host:/path/to/filename.tar.gz /some/local/folder, jak wyjaśniono w mojej odpowiedzi. Co się dzieje po wpisaniu komendy (wymienić user, host, /path/tooraz /some/local/folderz wartościami, które są właściwe w danym środowisku) w terminalu, a następnie naciśnij klawisz Enter? Czy jest jakiś wynik? Jeśli tak, dodaj go do naszego pytania.
— jaume

Brak wyjścia. po prostu przechodzi do następnej linii.
— GIRI

0

Oto inny sposób, jeśli jesteś już zalogowany do sesji sftp.

Jeśli dostaniesz:

sftp> get my-file.txt
get: failed to download /home/user/my-file.txt. Access is denied. 

Możesz rozważyć, czy lokalnie masz uprawnienia do pisania. Aby sprawdzić, gdzie plik zostanie pobrany, wykonaj:

sftp> lpwd
C:\Users\user1\Documents

Zasadniczo „Dokumenty” nie są dozwolone. Zmień katalog pobierania na C:\tmp:

sftp> lcd C:\tmp
sftp> get my-file.txt
    Downloading my-file.txt from /home/user/my-file.txt
    1% 437123KB    620KB/s 00:00:41 ETA

Gotowy

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.