我先介绍所有的命令,最后完成一遍压缩,传输,接收偶,解压缩的完整过程。
文件传输
scp
scp
(secure copy) 命令用于在本地和远程主机之间安全地复制文件和目录。
示例:将本地文件 file.txt
复制到远程服务器的 /home/user
目录。
scp file.txt user@remotehost:/home/user
示例:从远程服务器的 /home/user
目录复制文件 file.txt
到当前本地目录。
scp user@remotehost:/home/user/file.txt .
rsync
rsync
命令用于同步文件和目录,常用于备份和镜像。
示例:同步本地 src_directory/
到远程服务器上的 dest_directory/
,保持权限和时间戳。
rsync -avz src_directory/ user@remotehost:/path/to/dest_directory/
-a
参数表示归档模式,保持所有文件属性;-v
参数表示详细模式;-z
参数表示压缩数据传输。
压缩与解压缩
gzip
gzip
命令用于压缩文件。
示例:压缩 file.txt
文件。
gzip file.txt
这会生成一个 file.txt.gz
压缩文件,并删除原始文件。
gunzip
gunzip
命令用于解压 .gz
文件。
示例:解压 file.txt.gz
文件。
gunzip file.txt.gz
解压后会得到原始文件 file.txt
,并删除压缩文件。
tar
tar
命令用于创建、查看、提取 tar 归档文件。
示例:将 directory/
打包并压缩成 archive.tar.gz
。
tar -czvf archive.tar.gz directory/
-c
创建一个新的归档文件;-z
使用 gzip 压缩;-v
显示详细过程;-f
指定归档文件名。
示例:从 archive.tar.gz
解压文件。
tar -xzvf archive.tar.gz
-x
从归档文件中提取文件。
rz 和 sz
rz
和 sz
是 ZModem 协议的 Unix 命令行实现,通常用于通过终端会话进行文件传输。这些命令通常在与 minicom
或其他串行通信程序一起使用时非常有用。
rz
rz
是一个接收文件的程序,用于从另一端上传文件到当前系统。
rz
的常用参数有:
-b
:二进制传输模式,用于传输二进制文件。
-e
:转义所有控制字符,这在通道不是全8位干净时很有用。
-y
:覆盖已存在的文件,而不是询问。
由于 rz
和 sz
命令通常在一个终端程序内部运行,它们不需要在常规的命令行环境中使用。当你在一个终端会话中时,你通常只需输入 rz
命令,并通过终端程序的对话框选择要上传的文件。
sz
sz
命令用于发送文件到另一端。
压缩、sz、rz、解压缩的模拟过程
现在让我们模拟一个完整的压缩文件、使用 sz
发送、对方使用 rz
接收、然后解压缩文件的过程:
压缩文件
首先,在发送端,将要发送的文件或目录压缩。假设有一个名为 data
的目录需要压缩:
tar -czvf data.tar.gz data/
这会创建一个名为 data.tar.gz
的压缩文件。
使用 sz
发送压缩文件
在终端程序中,使用 sz
发送压缩文件:
sz data.tar.gz
接收方使用 rz
接收文件
在接收方的终端程序中,他们准备接收文件:
rz
然后在弹出的对话框中选择接收文件。
解压缩文件
一旦文件传输完成,接收方可以解压缩文件:
tar -xzvf data.tar.gz
这会在接收方的系统上解压缩 data.tar.gz
,重建 data
目录。
注意事项
在现代网络环境中,sz
和 rz
不如 scp
或 rsync
命令常用,因为后者支持通过 SSH 进行安全传输。
如果你在图形界面环境中,可能需要使用其他工具(如 FileZilla
或 scp
命令),它们提供了更现代和方便的文件传输方式。
在使用这些命令之前,请确保对方的系统上安装了相应的软件,并且他们知道如何接收或发送文件。
对于 sz
和 rz
,你可能需要特定的硬件(如串行端口)或软件(如 minicom
)来支持 ZModem 协议。