
在 Linux 中,传输文件是每个系统管理员都应该掌握的常见任务,尤其是在通过网络传输本地或远程系统之间的文件时。
Linux 提供了两种常用的工具:SCP(安全复制)和 Rsync。它们都提供了一种安全且方便的方式,在本地或远程计算机之间传输文件。
本文将介绍如何使用 SCP 和 Rsync 命令来传输文件,涵盖本地和远程文件传输的内容。
1. 理解 scp(安全复制协议)在 Linux 中的使用
`scp` 命令是一个命令行程序,用于通过 SSH(安全外壳)安全地复制文件和目录。也就是说,文件传输过程中数据会被加密,因此能确保在互联网上传输的文件的安全性。
使用 `scp` 的基本语法如下:
scp [options] source_file destination
下面是命令的说明:
– `源文件`:要复制的文件或目录。
– `目标`:文件或目录的复制位置。
本地文件复制
如果要将文件从同一台机器上的一个目录复制到另一个目录,可以使用:
scp ~/document.txt /tmp
将文件复制到远程服务器
要将文件从本地机器复制到远程服务器,需要指定远程服务器的 IP 地址和目标路径:
scp ~/document.txt username@192.168.1.100:/home/username
从远程服务器复制文件
要将文件从远程服务器复制到本地机器,只需反转源和目标:
scp username@192.168.1.100:/home/username/document.txt /tmp
复制整个目录
要复制整个目录,可以使用 `-r` 选项(表示递归复制):
scp -r ~/tecmint /tmp
2. 理解 rsync 在 Linux 中的使用
`rsync` 命令是另一个广泛使用的文件传输命令行工具,用于在源和目标之间传输文件和目录,它通常用于同步目录。
使用 `rsync` 的基本语法是:
rsync [options] source destination
本地文件传输
要本地传输文件或目录,可以使用带有 `-a` 选项的 `rsync`,启用归档模式,该模式会保留权限、所有权和时间戳。`-v` 选项表示详细模式,它会显示文件传输的进度。
rsync -av ~/myfolder /backup
将文件传输到远程服务器
要将文件传输到远程服务器,`rsync` 默认使用 SSH,这里需要指定远程服务器的 IP 地址和路径:
rsync -av ~/myfolder username@192.168.1.100:/home/username
上述命令将 `myfolder` 传输到远程服务器,如果再次执行,`rsync` 只会复制那些发生变化的文件。
从远程服务器传输文件
要将文件从远程服务器传输到本地机器,使用:
rsync -av username@192.168.1.100:/home/username/myfolder /backup
使用 Rsync 同步目录
`rsync` 的一个关键优势是它能够同步目录,这意味着可以保持两个目录同步,无论它们是位于同一台机器上还是不同的机器上。
例如,要将本地目录与远程目录同步:
rsync -av /local/directory/ username@remote_host:/remote/directory/
要将远程目录与本地目录同步,只需反转 `rsync` 命令中的源和目标:
rsync -av username@remote_host:/remote/directory/ /local/directory/
如果由于网络故障或其他原因导致传输中断,可以使用 `–partial` 选项恢复传输,从中断处继续:
rsync -av --partial /path/to/source username@remote_host:/path/to/destination
在 Linux 中传输文件是一个直接的任务,使用像 `scp` 和 `rsync` 这样的工具非常简单。虽然 `scp` 简单且安全,但 `rsync` 提供了更高级的功能,比如目录同步和效率提升。
了解如何有效使用这些工具,将帮助您在本地和远程系统之间管理文件和数据。











