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.