在 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 那样复制后再自己用 chown
和 chgrp
去修改。同时它也会同步文件的属性,如创建日期这些信息过去。
使用方法如下
rsync -av /tmp/one root@192.168.1.5:/tmp |
便可以将当前机器的 one
这个文件或者文件夹,传输到 B 这台机器的 /tmp
文件夹下,而且其文件属性不会改变。