Большинство людей предпочитают такие утилиты, как FileZilla или WinSCP, когда им нужно передавать файлы на серверы Linux / BSD или с них. Если на этом компьютере запущен OpenSSH, вы можете подключиться к нему по протоколу Secure / SSH FTP (SFTP). Вышеупомянутые утилиты облегчают передачу файлов, предоставляя графический интерфейс, но вы должны установить и настроить эти программы.
Некоторые пользователи предпочитают не устанавливать дополнительные утилиты. Другие просто предпочитают командную строку, потому что она дает вам больше контроля и более быстрый способ сообщить инструменту, что вы хотите, чтобы он делал. Но теперь есть еще одна причина обратиться к командной строке, когда вы хотите передать файлы. Windows 10 начала включать Клиент OpenSSH по умолчанию Это позволяет вам входить на серверы Linux / BSD прямо из командной строки.
Этот клиент также поставляется с множеством других утилит, среди которых 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
Теперь вы можете вводить команды в 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
Пути также могут быть относительными. Это означает, что если вы в C: \ Пользователь \ Джон Уже при открытии командной строки можно скачать на рабочий стол (C: \ Пользователь \ Джон \ Рабочий стол) С участием:
get /bin/ls Desktop
Удаленные пути также могут быть относительными, что означает, что если вы войдете в систему с sftp джон@203.0.113.1 Вы уже будете в каталоге ». дом / Джон", так что вы можете использовать это для загрузки"/ домой / Джон / файл"
get file Desktop
Это загрузит "/ домой / Джон / файл" мне "C: \ Users \ YourUser \ Desktop \ файл".
Чтобы скопировать каталоги, вы должны добавить к команде параметр -r, указывающий на итератор.
get -r /bin Desktop\bin
Не забудьте добавить имя для нового каталога, который вы хотите создать локально, например «Рабочий стол \ 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 в Интернете.