详细介绍:【Linux】文件管理:压缩、归档与传输

本专栏文章持续更新,新增内容使用蓝色表示。

一、压缩:减小文件体积

在日常工作中,处理大型文件时,压缩技术可以显著减少文件大小,节省存储空间和传输时间。

补充:相同大小的文件,文件数目越多越耗时,因为文件系统的底层是B+树,文件数越多,需要旋转平衡的次数就越多。

常用压缩工具

工具压缩命令解压命令特点
gzipgzip filename    gunzip filename.gz速度快,使用广泛
bzip2bzip2 filenamebunzip2 filename.bz2压缩比高,速度较慢
xzxz filenameunxz filename.xz压缩比最高,速度最慢
zipzip archive.zip file1 file2unzip archive.zip跨平台兼容性好
# 使用gzip压缩文件
gzip filename.txt
# 压缩后原文件会被删除,生成filename.txt.gz文件
# 解压缩
gunzip filename.txt.gz
# 使用zip压缩(保留原文件)
zip archive.zip file1.txt file2.txt
# 解压zip文件
unzip archive.zip

二、归档:文件打包管理

归档不同于压缩,它只是将多个文件打包成一个文件,不会减小总体积,但便于管理和传输。

tar命令常用参数

选项全称与功能说明
ccreate - 创建新的归档文件
xextract - 从归档中提取文件
tlist - 列出归档内容
vverbose - 显示处理过程的详细信息
ffile - 指定归档文件名
zgzip - 通过 gzip 过滤归档(压缩或解压 .tar.gz)
jbzip2 - 通过 bzip2 过滤归档(压缩或解压 .tar.bz2)
Jxz - 通过 xz 过滤归档(压缩或解压 .tar.xz)

重要提示:展开归档时,如果本地目录存在同名文件,会被静默覆盖且无提示!建议先检查归档内容:

# 查看归档内容
tar -tf archive.tar
# 解压到指定目录避免覆盖
tar -xf archive.tar -C /target/directory/

三、压缩+归档

tar 命令支持在打包时直接压缩。

# 使用gzip压缩并创建归档
tar -zcf archive.tar.gz directory/
# 使用bzip2解压缩归档
tar -jxf archive.tar.bz2
# 使用xz压缩并查看详细信息
tar -Jcfv archive.tar.xz directory/

四、文件传输:跨设备数据迁移

4.1 SCP - 文件复制

scp 可以将文件复制到远程或从中复制到本机,但是由于历史原因,设计时未考虑安全问题,所以不太推荐使用。而且 scp 复制时会始终复制所有内容,后面介绍的 rsync 命令仅同步已更改的内容,效率更高。

# 上传文件到远程服务器
scp local_file.txt user@remotehost:/path/to/destination
# 下载文件
scp user@remotehost:/path/to/file.txt local_destination
# 递归传输目录
scp -r local_directory user@remotehost:/remote/path

4.2 SFTP - 交互式文件传输

stfp 相当于 ftp 的加密版本。

连接成功后,终端会显示 sftp> 提示符,可以输入 help 获取可用命令。如果在 sftp 会话中,要在本机上运行命令,可在命令前加 l 。示例如下:

# 连接SFTP服务器
sftp user@remotehost
# 常用命令
ls      # 列出远程文件
lls     # 列出本地文件
cd      # 切换远程目录
lcd     # 切换本地目录
put     # 上传文件/目录(支持-r递归)
get     # 下载文件/目录(支持-r递归)
mkdir   # 创建远程目录
rm      # 删除远程文件
exit    # 退出sftp

4.3 RSYNC - 增量传输

rsync 命令是在系统之间安全复制文件,它支持增量传输,即首次传输完整数据,后续只传输变化部分。

# 基本用法(本地到本地)
rsync -av source/ destination/
# 同步到远程服务器
rsync -av local_dir/ user@remotehost:remote_dir/
# 从远程服务器同步
rsync -av user@remotehost:remote_dir/ local_dir/
选项全称与功能说明
-aarchive - 归档模式,相当于 -rlptgoD(递归、保留链接、权限、时间戳、组、所有者、设备文件)
-vverbose - 输出详细信息
-zcompress - 在传输过程中进行压缩
-rrecursive - 递归进入目录
-llinks - 保留符号链接
-pperms - 保留权限
-ttimes - 保留修改时间
-Ddevices & specials - 保留设备文件和特殊文件
-ndry-run - 试运行,只显示会做什么而不实际传输
--progress显示传输进度
--deletedelete - 从目标目录中删除源目录中没有的文件(使两边完全一致)

如有问题或建议,欢迎在评论区中留言~

posted @ 2025-09-15 12:16  yjbjingcha  阅读(32)  评论(0)    收藏  举报