tar命令是Linux中压缩目录的核心工具,支持gzip、bzip2、xz、zstd等多种压缩格式,兼顾速度与压缩率;通过-c、-x、-t等选项可实现打包、解压与查看内容,结合-f指定文件名,-v显示过程,-C指定解压路径;使用--exclude可排除特定文件,split可分卷压缩大文件,配合pv命令能显示压缩进度,提升管理效率。

在Linux中,压缩目录最常用且功能强大的工具非
tar
tar
在Linux中,使用
tar
c
z
j
j
最基础的压缩目录命令格式是:
tar -选项 目标文件名 源目录
例如,要将名为
my_project
gzip
my_project.tar.gz
tar -czvf my_project.tar.gz my_project/
c
z
v
f
如果你想使用其他压缩格式,只需更换对应的压缩选项:
使用bzip2压缩(生成.tar.bz2
tar -cjvf my_project.tar.bz2 my_project/
j
使用xz压缩(生成.tar.xz
tar -cJvf my_project.tar.xz my_project/
j
使用zstd压缩(生成.tar.zst
tar -cvf - my_project/ | zstd -T0 > my_project.tar.zst
tar
tar -c --zstd -vf my_project.tar.zst my_project/
zstd
--use-compress-program
tar
--zstd
选择哪种压缩格式,往往取决于你对压缩速度和压缩率的需求平衡。这就像在赶时间做饭和精雕细琢一道菜之间做选择。
gzip (.gz
gzip
bzip2 (.bz2
bzip2
xz (.xz
xz
xz
gzip
zstd (.zst
zstd
zstd
gzip
bzip2
xz
zstd
在处理
tar
查看压缩包内容: 在解压之前,通常我们想知道压缩包里到底有什么,特别是当你收到一个来源不明的压缩包时。
tar -tf my_project.tar.gz
t
f
my_project.tar.bz2
my_project.tar.xz
解压压缩包: 解压命令与压缩命令类似,只是将
c
x
tar -xf my_project.tar.gz
这会将
my_project.tar.gz
tar -xf my_project.tar.gz -C /path/to/extract/
-C
/path/to/extract/
mkdir -p /path/to/extract/
对于不同压缩格式的归档文件,
tar
.tar.bz2
tar -xf my_project.tar.bz2 -C /path/to/extract/
.tar.xz
tar -xf my_project.tar.xz -C /path/to/extract/
.tar.zst
tar -xf my_project.tar.zst -C /path/to/extract/
zstd -d < my_project.tar.zst | tar -xf - -C /path/to/extract/
在日常运维和开发中,仅仅知道如何压缩和解压是不够的。我们经常需要处理一些复杂场景,比如排除特定文件、分卷压缩大文件,或者在漫长的压缩过程中看到进度条。
1. 排除特定文件或目录 (--exclude
target/
.git/objects
--exclude
tar -czvf project_backup.tar.gz my_project/ --exclude='my_project/node_modules' --exclude='my_project/logs/*.log' --exclude='my_project/tmp/'
--exclude
.git/objects
--exclude
2. 分卷压缩大文件: 当你要压缩一个非常大的目录,并且需要将其传输到有文件大小限制的存储介质(如FAT32格式的U盘)或通过邮件发送时,分卷压缩就显得尤为重要。你可以将一个大的
tar
tar -cvf - my_large_directory/ | split -b 1G - my_large_directory.tar.part
tar -cvf - my_large_directory/
my_large_directory
-
|
tar
split
split -b 1G - my_large_directory.tar.part
split
-b 1G
my_large_directory.tar.partaa
my_large_directory.tar.partab
cat my_large_directory.tar.part* > my_large_directory.tar
tar -xf my_large_directory.tar
split
tar -czvf - my_large_directory/ | split -b 1G - my_large_directory.tar.gz.part
3. 显示压缩进度 (pv
tar
pv
pv
sudo apt-get install pv
sudo yum install pv
tar -cvf - my_large_directory/ | pv -s $(du -sb my_large_directory/ | awk '{print $1}') | gzip > my_large_directory.tar.gzpv -s $(du -sb my_large_directory/ | awk '{print $1}')my_large_directory
pv
pv
以上就是如何在Linux中压缩目录 Linux tar多格式压缩指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号