Ubuntu SFTP文件压缩与解压操作指南
SFTP(SSH File Transfer Protocol)本身不直接提供文件压缩/解压功能,需结合Ubuntu系统工具(如tar、zip)实现。以下是具体步骤:
tar(推荐,支持gzip/bzip2压缩,压缩率高)tar -czvf archive.tar.gz /path/to/directory_or_file # gzip压缩(.tar.gz格式,速度快、压缩率适中)
tar -cjvf archive.tar.bz2 /path/to/directory_or_file # bzip2压缩(.tar.bz2格式,压缩率更高但速度慢)
参数说明:-c(创建归档)、-z/-j(调用gzip/bzip2压缩)、-v(显示进度)、-f(指定归档文件名)。zip(兼容Windows,适合跨平台传输)zip -r archive.zip /path/to/directory_or_file # 递归压缩目录(.zip格式,Windows通用)
# 压缩/home/user/documents目录为documents.tar.gz(推荐)
tar -czvf documents.tar.gz /home/user/documents
# 或压缩为documents.zip(兼容Windows)
zip -r documents.zip /home/user/documents
sftp username@remote_server_ip
输入密码后进入SFTP交互界面(提示符变为sftp>)。put /local/path/to/archive.tar.gz /remote/path/to/destination/
示例:将本地的documents.tar.gz上传到远程服务器的/home/user/backups/目录:sftp> put /home/user/documents.tar.gz /home/user/backups/
get /remote/path/to/archive.tar.gz /local/path/to/destination/
示例:从远程服务器下载backups/documents.tar.gz到本地的~/downloads/目录:sftp> get /home/user/backups/documents.tar.gz ~/downloads/
exit
tar解压.tar.gz文件:tar -xzvf archive.tar.gz -C /path/to/destination/ # -C指定解压目录(可选)
解压.tar.bz2文件:tar -xjvf archive.tar.bz2 -C /path/to/destination/
参数说明:-x(提取文件)、-z/-j(对应gzip/bzip2解压)、-v(显示进度)、-C(指定解压目录)。unzip解压.zip文件:unzip archive.zip -d /path/to/destination/
参数说明:-d(指定解压目录)。# 连接远程服务器
sftp> cd /home/user/backups/ # 进入压缩文件所在目录
sftp> get documents.tar.gz ~/downloads/ # 下载到本地
exit
# 本地解压
tar -xzvf ~/downloads/documents.tar.gz -C ~/documents_restored/ # 解压到~/documents_restored目录
或直接在远程服务器解压(无需下载):
sftp> cd /home/user/backups/
sftp> tar -xzvf documents.tar.gz -C /home/user/restored/ # 远程解压到/restored目录
若需在SFTP传输过程中直接压缩数据(节省带宽,但会增加CPU负载),可修改SSH配置:
sudo nano /etc/ssh/sshd_config
#Compression yes,取消注释并将no改为yes:Compression yes
sudo systemctl restart ssh
启用后,SFTP传输的数据会自动压缩(适用于大文件或慢速网络)。
通过以上步骤,可实现Ubuntu环境下SFTP文件的压缩、传输与解压操作。根据需求选择合适的压缩格式(tar.gz适合Linux服务器,zip适合跨平台),并注意大文件传输时的压缩与分块策略(如split命令分割文件)。