Как скопировать с 1 компьютера на другой компьютер с помощью команд оболочки Linux?

Я хочу скопировать файл (home/remote_computer_user/Desktop/test1.txt) с моего удаленного офисного компьютера (постоянный URL + открытый порт) на мой домашний компьютер (home/home_computer_user/Downloads/).

как я могу сделать это с помощью команд оболочки в Linux?

мои текущие мысли:

  1. ssh <user>@<computer1address> -p <port> - дает мне оболочку на удаленном компьютере
  2. (Я думаю, что я должен использовать scp, но я не знаю, как именно, как в моем случае)

какие команды я должен использовать?

21
задан Der Hochstapler
07.04.2023 15:33 Количество просмотров материала 2606
Распечатать страницу

4 ответа

Это должно быть что-то вроде:

scp -P <port> user@comp1:Desktop/test1.txt ~/Downloads/

запустить на своем домашнем ПК.

надеюсь, это поможет вам.

4
отвечен Anarko_Bizounours 2023-04-08 23:21

scp работает, но вы также можете использовать rsync:

rsync -e 'ssh -p <port>' <user>@<computer1address>:Desktop/test1.txt ~/Downloads/

большую часть времени rsync является заменой scp, т. е. с наиболее scp команды можно просто заменить scp С rsync и он будет работать точно так же. Единственная причина, это не верно для вашего случая заключается в том, что rsync нет -p возможность указать порт (ну, это так, но он применяется только тогда, когда rsync подключается через свой собственный протокол, а не через ssh). Так вам нужно сказать это использовать альтернативную команду ssh, которая включает порт.

если ваш ssh сервер использует стандартный порт, или если у вас есть порт, настроенный в ~/.ssh/config (в любом случае, это означает, что вы не должны использовать -p вариант при подключении с ssh), то вы можете просто запустить

rsync <user>@<computer1address>:Desktop/test1.txt ~/Downloads/

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

1
отвечен David Z 2023-04-09 01:38

если у вас есть FTP или SCP, используйте его. Это более удобное место. Если вы ограничены ssh (как я на многих встраиваемых системах)

загрузить один файл:

 ssh login@remotehost -p remoteport "cat >filename" <filename

скачать одним файлом:

 ssh login@remotehost -p remoteport "cat filename" >filename

загрузить каталог

 tar -cf - dirname | ssh login@remotehost -p remoteport "tar -xf -"

Скачать каталог

 ssh login@remotehost -p remoteport "tar -cf - dirname" | tar -xf - 

вместо dirname вы можете указать несколько файлов, каталогов или шаблон для соответствия. Остерегайтесь абсолютных путей.

0
отвечен SF. 2023-04-09 03:55

альтернативой scp, которая может быть более привычной и более подходящей для передачи нескольких файлов, является sftp. Он поставляется со всеми основными версиями ssh, с которыми я столкнулся.

0
отвечен CarlF 2023-04-09 06:12

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх