Копирование файлов по ssh. Команда scp. Linux статьи
Написать статью
Войдите, чтобы писать статьи

Копирование файлов по ssh. Команда scp

1

Для копирования файлов по ssh между компьютерами под управлением Linux применяется команда scp. Рассмотрим, как можно копировать файлы с одного компьютера на другой по ssh, используя команду scp.

Синтаксис команды scp

Синтаксис команды scp следующий:

scp [опции] что_копируем куда_копируем

Команда scp принимает на вход различные опции (см. примеры ниже), а также файл или директорию, которую необходимо скопировать (аргумент что_копируем). Последним аргументом указывается путь назначения, в который будет произведено копирование (аргумент куда_копируем).

Аргументы что_копируем и куда_копируем могут быть, как локальными путями, так и удаленными. То есть можно копировать файлы с удаленного компьютера на локальный и наоборот. Можно копировать файлы с удаленного компьютера на другой удаленный компьютер.

что_копируем и куда_копируем имеют следующий синтаксис:

имя_пользователя@IP_адрес:путь до файла или директории

имя_пользователя — это имя пользователя для подключения по ssh.
IP_адрес — IP адрес компьютера (хоста) на который или с которого будет копирование.

Копирование локального файла

Локальный→Удаленный

Рассмотрим простой пример. Скопируем по ssh локальный файл myfile.dat на компьютер с IP адресом 192.168.1.74 в директорию /home/pingvin.

scp myfile.dat pingvin@192.168.1.74:/home/pingvin

Указываем порт

Выполним тоже самое, но укажем еще и порт для подключения по ssh (используем опцию -P). Обратите внимание, что опция для указания порта это прописная буква P!

scp -P 6773 myfile.dat pingvin@192.168.1.74:/home/pingvin

Копирование файла с удаленного компьютера на локальный

Удаленный→Локальный

Теперь наоборот. Скопируем файл с удаленного компьютера в нашу текущую директорию.

scp pingvin@192.168.1.74:/home/pingvin/myfile.dat .

Копирование директории

Скопируем с нашего локального компьютера директорию ~/mydir на удаленный компьютер в директорию /home/pingvin. Используется опция -r.

scp -r ~/mydir pingvin@192.168.1.17:/home/pingvin

Копирование со сжатием данных (ускорение)

Скорость копирования файлов можно увеличить. Для этого используется опция -C. Данная опция выполняет сжатие файлов при копировании, таким образом по сети передается меньшее количество данных. Сжатие выполняется только при передаче данных, то есть результирующий файл будет в первоначальном виде.

Пример копирования файла myfile.dat с включенным сжатием.

scp -C myfile.dat pingvin@192.168.1.74:/home/pingvin

Сохранение атрибутов файла

Чтобы результирующий файл получил те же атрибуты что и исходный файл, используется опция -p (не путать с опцией -P для указания порта). При использовании опции -p сохраняются права доступа к файлу, владелец файла, временные метки и так далее.

scp -p myfile.dat pingvin@192.168.1.74:/home/pingvin

Если в пути есть пробелы

Если путь до удаленного файла/директории содержит пробелы, то при использовании команды scp необходимо этот путь заключить и в одинарные и двойные кавычки:

scp -r pingvin@192.168.1.17:"'/home/pingvin/Some dir with spaces"' .

Это связано с тем, что одни кавычки используются при разборе пути на локальной стороне, а вторые на удаленной.


Для получения полной справки по команде scp выполните в терминале:

man scp
Лайков: +2
войдите, чтобы ставить лайки
1
  • Опубликовано: 12.01.2019

Комментарии

VadimAndy
Активный пользователь
Активный
12.01.2019
18:19
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+2
войдите, чтобы ставить лайки
Да, Юрий! Да! Прямая замена samba, причем гораздо более шустрая и безопасная!

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила