TongXu-Server

Compress

zip

  • zip是linux下常用的压缩工具,支持创建、修改和提取zip格式的压缩文件。是一种跨平台的压缩格式,适用于windows和linux之间的文件交换。
#压缩文件
zip file.zip file
# -r 压缩目录
zip -r dir.zip dir/
# -u 添加新文件或更新已有文件
zip -u file.zip file
# -d 删除指定文件
zip -d file.zip file
# -T 测试文件的完整性
zip -T file.zip 
# -e 加密zip文件(设置密码)
zip -e file_en.zip file.zip 
# -x 排除一些文件
zip -r dir.zip /dir -x "*.log" "*.tmp"

#解压缩到当前目录
unzip file.zip
#解压缩到指定目录
unzip file.zip -d /path/to/dir

gzip

  • 只能压缩单个文件,压缩速度快
#压缩文件,原文件被删除
gzip file.txt
#压缩文件,原文件保留
gzip -k file.txt
# -l 查看压缩文件信息
gzip -l file.txt.gz
# -v 显示压缩/解压详情
gzip -v file.txt
# -c 输出到标准输出 不修改原文件
gzip -c file.txt > file.txt.gz
# 批量压缩当前目录所有.txt文件
gzip *.txt

#解压缩
gzip -v -d file.txt.gz
gunzip -v file.txt.gz #gunzip是gzip -d 的别名

xz

  • 基于LZMA/LZMA2算法的高效压缩工具,压缩率通常比gzip bzip2更高,速度较慢,只能压缩单个文件
#压缩文件,原文件被删除
xz file.txt
#压缩但保留原文件
xz -k file.txt
# -l 查看压缩文件信息
xz -l file.txt.xz
#使用最高压缩比
xz -9 large_file.iso 
# -Tn 多线程压缩
xz -T4 file.txt#4个线程加速
# -c 输出到屏幕,不生成文件
xz -c file.txt > file.txt.xz

#解压缩文件
xz -d file.txt.xz
unxz file.txt.xz #unxz是xz -d的别名

bzip2

  • 基于Burrows-Wheeler算法的压缩工具,压缩率比gzip更高,但比xz稍低,适合中等大小的文件
#压缩文件,源文件被删除
bzip2 file.txt
#保留原文件压缩
bzip2 -k file.txt
#测试压缩文件的完整性
bzip2 -t file.txt.bz2
#-c输出到屏幕,-v显示详情
bzip2 -v -c file.txt > file.txt.bz2

#解压缩
bzip2 -d file.txt.bz2
bunzip2 file.txt.bz2

7-zip

  • 支持多种压缩格式,并提供AES-256加密,分卷压缩等高级功能。
sudo pacman -S p7zip 

#压缩文件或目录 -a 添加文件到压缩包 -r 递归处理子目录
7z a archive.7z file1.txt fiel2.txt
7z a archive.7z my_dir/ -r 
#使用最高压缩率
7z a -mx=9 archive.7z large_file.iso
#使用压缩算法
7z a -m0=lzma2 archive.7z large_file.iso
#指定文件格式
7z a -tzip archive.zip my_dir/
7z a -txz archive.tar.xz my_dir/
7z a -tgzip archive.tar.gz my_dir/
#加密压缩
7z a -p archive.7z secret_files/ -r # 提示输入密码
7z a -pMyPassword archive.7z secret_files/ -r #直接使用指定密码
#分卷压缩
7z a -v500M archive.7z huge_file/
# l 查看压缩包的内容
7z l archive.7z
# t 测试压缩包的完整性
7z t archive.7z
# 删除压缩包内的文件
7z d archive.7z unwanted_file.txt
# 更新压缩包 u
7z u archive.7z new_file.txt

#解压缩
7z x archive.7z 		#解压到当前目录
7z x archive.7z -o /tmp/#解压到指定目录
7z x archive.7z -pMyPassword #解压加密文件
7z x -tzip archive.zip   #指定文件格式

lz4

  • 是一个急速压缩和解压缩工具,特点是解压缩速度极快,但压缩率相对较低,适合用于需要快速压缩或解压缩的场景,如日志处理、实时数据传输。
#压缩文件
lz4 file.txt
#调节压缩率
lz4 -9 file.txt #-9最高压缩率 
#强制覆盖已有文件
lz4 -f file.txt
#压缩后删除原文件
lz4 --rm file.txt
#多线程压缩
lz4 -T0 file.txt #自动使用所有cpu核心
lz4 -T4 file.txt #使用4个线程
#检查压缩文件的完整性
lz4 -t file.txt.lz4 

#解压缩
lz4 -d file.txt.lz4 
unlz4 file.txt.lz4 

zstd

  • 一款fackbook开发的一款现代高性能压缩工具,在压缩速度、压缩率和内存占用之间取得了优秀平衡,适用于日志压缩、数据库备份、实时数据传输等场景。
#压缩文件
zstd file.txt
#保留源文件
zstd -k file.txt
#指定输出文件名
zstd -o archive.zst file.txt
#调整压缩级别 -1  -19高压缩率
zstd -19 file.txt
#多线程加速
zstd -T0 file.txt #使用所有的cpu核心
zstd -T4 file.txt #使用4个线程 
#查看压缩信息
zstd -l archive.zst 
#解压缩
zstd -d file.txt.zst
unzstd file.txt.zst #unsztd 是zstd -d 的别名

#管道压缩/解压缩
cat file.txt | zstd > file.txt.zst
cat file.txt.zst | zstd -d > file.txt

rar

  • windows常用的压缩工具,linux需要安装unrar rar命令,支持rar格式,提供高压缩率、分卷压缩、密码保护和恢复记录等功能。
sudo pacman -S rar unrar
#压缩文件或目录 a 添加文件到压缩包
rar a archive.rar file1.txt file2.txt 
rar a -r arhive.rar my_dir/ #-r 递归处理目录
#使用最高的压缩率-m5
rar a -m5 archive.rar large_file.iso 
#加密压缩
rar a -p archive.rar secret_files
rar a -pMyPassword arvchive.rar secret_files
#分卷压缩
rar a -v500M archive.rar huge_file

#查看压缩包内容
unrar l archive.rar
#解压文件
unrar x archive.rar #解压缩目录到当前目录 保留路径
unrar e archive.rar #解压缩到当前目录 不保留路径
unrar x archive.rar /target/path/ #解压缩到指定目录
#测试压缩包的完整性
unrar t archive.rar

#删除压缩包内的文件
rar d archive.rar unwanted_file.txt
#更新压缩包 添加新文件
rar u archive.rar new_file.txt

tar命令

#打包与解包
tar -cvf archive.tar my_dir/
tar -xvf archive.tar 
tar -xvf archive.tar -C /target/path/ #解包到指定目录
#查看归档内容
tar -tvf archive.tar.gz
#排除特定文件
tar -cvf backup.tar --exclude="*.tmp" --exclude="logs/" my_dir/
#追加文件
tar -rvf archive.tar new_file.tar
#压缩选项
tar -czvf archive.tar.gz
tar -cjvf archive.tar.bz2
tar -cJvf archive.tar.xz
tar --zstd -cvf archive.tar.zst
tar --lz4 -cvf  archive.tar.lz4

#增量备份
#首次完整备份
tar -czvf full_backup.tar.gz --listed-incremental=snapshot.file my_dir/
#后续增量备份
tar -czvf incr_backup.tar.gz --listed-incremental=snapshot.fiel my_dir/