Как использовать команду SFTP для передачи файлов на/с серверов Linux

Большинство людей предпочитают такие утилиты, как FileZilla или WinSCP, когда им нужно передавать файлы на серверы Linux / BSD или с них. Если на этом компьютере запущен OpenSSH, вы можете подключиться к нему по протоколу Secure / SSH FTP (SFTP). Вышеупомянутые утилиты облегчают передачу файлов, предоставляя графический интерфейс, но вы должны установить и настроить эти программы.

Некоторые пользователи предпочитают не устанавливать дополнительные утилиты. Другие просто предпочитают командную строку, потому что она дает вам больше контроля и более быстрый способ сообщить инструменту, что вы хотите, чтобы он делал. Но теперь есть еще одна причина обратиться к командной строке, когда вы хотите передать файлы. Windows 10 начала включать Клиент OpenSSH по умолчанию Это позволяет вам входить на серверы Linux / BSD прямо из командной строки.

Как использовать команду SFTP для передачи файлов на/с серверов Linux — пояснения

Этот клиент также поставляется с множеством других утилит, среди которых SFTP. Итак, теперь вы можете передавать файлы в операционные системы Linux / BSD прямо из командной строки, не устанавливая ничего на свой компьютер с Windows.

Утилита SFTP также доступна на машинах Linux и работает таким же образом.

Как войти в систему с помощью команды sftp

Если вы используете Windows, откройте командную строку. Если вы используете Linux, откройте окно терминала.

Чтобы войти на сервер с помощью команды sftp, вы можете использовать тот же синтаксис, что и команда ssh. Если вы не знакомы с этим, прочтите руководство, указанное во вводном абзаце.

sftp your_username@IP-address-or-hostname

Примеры команд:

sftp john@203.0.113.1

sftp john@example.com

Как использовать команду SFTP для передачи файлов на/с серверов Linux — пояснения

Как скачать файлы после входа в систему с помощью sftp

Теперь вы можете вводить команды в sftp> prompt для взаимодействия с файлами на сервере.

Чтобы скачать файл:

get /path/to/file/on/server

Пример:

get /bin/ls

Он будет загружен в ваш текущий каталог, в котором вы находились локально до входа на сервер. Чтобы загрузить в определенный локальный каталог (Windows):

get /path/to/file/on/server C:\path\to\local\folder

пример

get /bin/ls C:\User\John\Desktop

В Linux просто используйте пути типа Unix (косая черта вместо обратной):

get /bin/ls /home/john/Desktop
Примечание. Даже если вы используете (неправильно) косую черту для путей Windows, в sftp, похоже, инструмент их поймет.

Пути также могут быть относительными. Это означает, что если вы в C: \ Пользователь \ Джон Уже при открытии командной строки можно скачать на рабочий стол (C: \ Пользователь \ Джон \ Рабочий стол) С участием:

get /bin/ls Desktop

Удаленные пути также могут быть относительными, что означает, что если вы войдете в систему с sftp джон@203.0.113.1 Вы уже будете в каталоге ». дом / Джон", так что вы можете использовать это для загрузки"/ домой / Джон / файл"

get file Desktop

Это загрузит "/ домой / Джон / файл" мне "C: \ Users \ YourUser \ Desktop \ файл".

Чтобы скопировать каталоги, вы должны добавить к команде параметр -r, указывающий на итератор.

get -r /bin Desktop\bin
Как использовать команду SFTP для передачи файлов на/с серверов Linux — пояснения

Не забудьте добавить имя для нового каталога, который вы хотите создать локально, например «Рабочий стол \ bin" В этом случае. Если вы будете использовать get -r / bin Рабочий стол , файлы будут скопированы прямо на рабочий стол. Это файлы, которые были скопированы, а не сам каталог.

Как загружать файлы после входа в систему с помощью sftp

Загрузка файлов или каталогов выполняется по тем же принципам. Единственным исключением является то, что пути меняются местами, что означает, что вы сначала указываете локальный файл / каталог, а затем удаленный путь.

В Windows:

put C:\path\to\local\content /path/where/to/upload

В Linux:

put /path/to/local/content /path/to/remote/location

При загрузке каталогов (их копировании) помните, что применяется то же правило, что и в предыдущем разделе: на самом деле были скопированы файлы в каталоге, а не сам каталог. Итак, выберите новое имя для каталога, в который вы хотите скопировать эти файлы.

put -r Desktop/bin bin

Это создаст новый каталог с именем «бункерПо ту сторону.

Чтобы выйти из оболочки sftp, просто введите:

выход

Как возобновить передачу и использовать пути, содержащие пробелы

При передаче большого файла, если она прервана, вы можете возобновить выполнение команды, заменив предыдущую команду репутация وрегет  вместо положил و получить. Просто убедитесь, что вы используете те же пути, что и в прошлый раз, чтобы они точно соответствовали источнику и месту назначения.

reget /path/to/file/on/server C:\path\to\local\file

reput C:\path\to\local\file /path/to/file/on/server

Чтобы возобновить передачу каталогов, просто добавьте параметр -r.

reput -r Desktop/bin bin

Если путь к файлу содержит пробелы, заключите его в кавычки.

Так не пойдет:

put C:\Program Files (x86)\Steam\steamapps\common\The Witcher 3\SOUNDTRACK\The_Witcher_3_Wild_Hunt_-_Official_Soundtrack_(steam_edition)_mp3.zip

Но это сработает:

put "C:\Program Files (x86)\Steam\steamapps\common\The Witcher 3\SOUNDTRACK\The_Witcher_3_Wild_Hunt_-_Official_Soundtrack_(steam_edition)_mp3.zip"

(Да, вы действительно можете найти саундтрек в Ведьмаке 3, если он у вас установлен в Steam.)

Заключение

Это охватывает самые важные вещи, которые вам нужно знать о sftp. Если вы обнаружите, что вам нужно узнать больше, вы можете прочитать Полное руководство по командам sftp в Интернете.

Перейти к верхней кнопке