如何将文件传输到另外一台 Linux 设备上

在 Linux 中,如何将文件从当前机器,传输到另外一台机器呢?用 U 盘、移动硬盘、网盘?可以是可以,不过要是用的是服务器,而且要传输的文件数量比较多,这样操作起来就比较麻烦了。还有其它方法吗?

tar

或许用 tar 先将文件打包成一个压缩包,传输到另外一台机器后,再解压也是不错的选择。

scp

也可以使用 scp 来传输。例如,我现在有两台机器

  • A:192.168.1.4
  • B:192.168.1.5

我先通过 ssh 连接到 A 这台机器上,我想把 /tmp/a.txt 这个文件,传输到 B 这台机器上的 /tmp 文件夹中,我可以用这个命令

scp /tmp/a.txt root@192.168.1.5:/tmp

这里我是用 root 这个身份登录 B 这台机器。而且用的是 22 这个默认端口,如果机器的 ssh 是使用其它端口,得用 -p 这个参数。变成这样

scp -p 6655 /tmp/a.txt root@192.168.1.5:/tmp

如果传输的是文件夹,则需要加 -r 参数

rsync

rsync 是更好的选择,它把整个文件夹复制过去时,可以同步其所有者和用户组,而不需要像 scp 那样复制后再自己用 chownchgrp 去修改。同时它也会同步文件的属性,如创建日期这些信息过去。

使用方法如下

rsync -av /tmp/one root@192.168.1.5:/tmp

便可以将当前机器的 one 这个文件或者文件夹,传输到 B 这台机器的 /tmp 文件夹下,而且其文件属性不会改变。