CentOS系统通常预装tar,可通过tar --version检查,若未安装可用yum或dnf安装;tar用于打包和调用gzip、bzip2、xz等工具压缩,常用格式为.tar.gz、.tar.bz2、.tar.xz,支持排除文件、分卷、进度监控及优先级调整等高级功能。

在CentOS系统下,
tar
要使用
tar
tar --version
1. 检查 tar
tar --version which tar
如果上述命令有输出,比如显示
tar (GNU tar) 1.26
tar
which tar
tar
2. 安装 tar
对于CentOS 7或更早的版本,使用
yum
sudo yum install tar
对于CentOS 8或更新的版本,
yum
dnf
yum
dnf
dnf
sudo dnf install tar
安装过程通常很快,因为它是个很小的核心工具。
3. tar
tar
gzip
bzip2
xz
打包文件/目录 (不压缩):
tar -cvf myarchive.tar /path/to/directory /path/to/file1 /path/to/file2 # -c: 创建归档 # -v: 显示详细过程 (verbose) # -f: 指定归档文件名
这个命令会将
/path/to/directory
/path/to/file1
/path/to/file2
myarchive.tar
打包并使用 gzip
tar -czvf myarchive.tar.gz /path/to/directory # -z: 调用gzip进行压缩/解压缩
这是最常用的方式,生成的文件后缀通常是
.tar.gz
.tgz
打包并使用 bzip2
tar -cjvf myarchive.tar.bz2 /path/to/directory # -j: 调用bzip2进行压缩/解压缩
bzip2
gzip
打包并使用 xz
tar -cJvf myarchive.tar.xz /path/to/directory # -J: 调用xz进行压缩/解压缩 (注意是大写J)
xz
解压归档文件 (到当前目录):
tar -xvf myarchive.tar # 解压 .tar tar -xzvf myarchive.tar.gz # 解压 .tar.gz 或 .tgz tar -xjvf myarchive.tar.bz2 # 解压 .tar.bz2 或 .tbz tar -xJvf myarchive.tar.xz # 解压 .tar.xz 或 .txz # -x: 提取文件
解压时,
tar
-z
-j
-j
解压到指定目录:
tar -xzvf myarchive.tar.gz -C /path/to/destination # -C: 指定解压目录 (Change directory)
查看归档文件内容 (不解压):
tar -tvf myarchive.tar tar -tzvf myarchive.tar.gz # -t: 列出归档内容
这个命令可以让你在解压前先看看里面有什么,避免不必要的解压操作,特别是当你对文件内容不确定时。
tar
tar
一个我经常用到的场景是,打包一个项目目录,但要排除掉
node_modules
.git
--exclude
# 打包当前目录,排除node_modules和.git目录 tar -czvf myproject_backup.tar.gz . --exclude=./node_modules --exclude=./.git # 注意:路径要和tar命令操作的相对路径一致,如果tar . 则exclude也要用./
另外,如果你想打包后直接通过网络传输,或者在处理非常大的文件时,可以考虑使用管道(pipe)。比如,直接将
tar
ssh
tar -czf - /path/to/source | ssh user@remote_host "cat > /path/to/destination/backup.tar.gz"
这里
-
tar
很多人刚接触
tar
tar
tar
.tar
gzip
bzip2
xz
tar
-z
-j
-j
gzip
-z
.tar.gz
.tgz
bzip2
-j
gzip
gzip
.tar.bz2
.tbz
xz
-j
.tar.xz
.txz
在我个人的经验中,如果不是特别大的文件或者对存储空间有严格限制,我通常会选择
gzip
xz
当我们在CentOS上使用
tar
tar -czvf
分卷打包 (Splitting Archives): 如果你打包的文件最终会超过某个文件系统或传输协议的限制(比如FAT32不支持大于4GB的文件,或者你只想通过邮件发送小块数据),可以使用
split
tar
# 先打包但不压缩 tar -cvf - /path/to/large_directory | split -b 2G -d -a 3 large_directory.tar. # 这会生成 large_directory.tar.000, large_directory.tar.001 等文件,每个2GB。 # -b 2G: 每2GB一个文件 # -d: 使用数字后缀 # -a 3: 后缀长度为3位 # 解包时: cat large_directory.tar.* | tar -xvf -
这种方式在分发大型归档时非常实用,也避免了单一大文件可能带来的问题。
排除不必要的文件/目录 (--exclude
.git
.svn
node_modules
target
tar -czvf my_backup.tar.gz /path/to/project \
--exclude='*.log' \
--exclude='tmp/' \
--exclude='cache/' \
--exclude='node_modules'注意
--exclude
tar
监控进度 (pv
tar
pv
tar -czf - /path/to/large_directory | pv -s $(du -sb /path/to/large_directory | awk '{print $1}') | cat > my_backup.tar.gz
# 或者更简单,但无法预估总大小:
# tar -czf - /path/to/large_directory | pv > my_backup.tar.gzpv
使用 ionice
nice
tar
ionice
nice
# 以较低的I/O优先级运行tar ionice -c 3 tar -czvf my_backup.tar.gz /path/to/large_directory # 以较低的CPU优先级运行tar nice -n 19 tar -czvf my_backup.tar.gz /path/to/large_directory
这能让
tar
考虑文件系统缓存和I/O优化: 对于非常大的归档,文件系统的读写性能是关键。确保你的磁盘I/O不是瓶颈。如果可能,在高速存储(如SSD)上进行打包和解包操作。此外,Linux的内核会进行文件系统缓存,对于重复读写同一个文件,第二次会快很多。但对于一次性的大文件归档,这个效果不明显。
这些技巧的运用,能让
tar
以上就是CentOS下怎么安装tar_CentOS解压与安装tar打包软件教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号