文章目录
一、这个后缀到底是个啥玩意?(原理篇)
每次看到电脑里躺着的.tar.gz
文件,是不是总有种"这货到底是套娃还是俄罗斯方块"的困惑?(别不好意思承认!)其实这货是Linux界的经典组合套餐:
- tar:打包界的活化石(能把100个文件打包成1个)
- gzip:压缩界的扛把子(能把大文件瘦身成小可爱)
举个栗子🌰:当你把project/
文件夹打包压缩成project.tar.gz
时,实际上经历了:
tar打包 → project.tar → gzip压缩 → project.tar.gz
(是不是像极了把衣服塞进行李箱再压上屁股的过程?)
二、新手必看的解压基础课
2.1 黄金四字诀
记住这个万能咒语:
tar -xzvf 你的压缩包.tar.gz
(敲黑板!这四个参数缺一不可)
-x
:解压开关(extract mode)-z
:告诉tar这是gzip压缩过的(重要!)-v
:实时播报解压过程(verbose模式)-f
:指定文件路径(file参数)
2.2 典型翻车现场
新手常见车祸现场实录:
# 错误示范1:忘记-f参数
tar -xzv 下载的文件.tar.gz → 报错:没指定文件!
# 错误示范2:参数顺序乱放
tar -zvxf 文件.tar.gz → 居然能解压!(但这是个坏习惯)
三、高手进阶的六种骚操作
3.1 指定解压路径(-C参数)
不想把文件解压到当前目录?试试这个:
tar -xzvf 资料.tar.gz -C /目标路径/
(注意-C后面没有空格!这个坑我掉过三次!!!)
3.2 查看压缩包内容
不用解压就能看压缩包里的文件列表:
tar -tzvf 大型安装包.tar.gz
3.3 解压单个文件
想从500M的压缩包里只提取config.ini:
tar -xzvf 大礼包.tar.gz path/to/config.ini
3.4 保持文件权限(-p参数)
解压后文件权限全乱了?加个-p就搞定:
tar -xzpvf 系统备份.tar.gz
3.5 批量解压大法
当前目录下所有tar.gz一键解压:
ls *.tar.gz | xargs -n1 tar -xzvf
3.6 自动创建目录(–strip-components)
当压缩包里有过多父目录时:
tar -xzvf 文件.tar.gz --strip-components=1
(这个参数能去掉最外层目录,超实用!)
四、老司机的私房秘籍
4.1 解压进度条显示
用pv命令显示解压进度:
pv 超大文件.tar.gz | tar -xzvf -
(需要先安装pv工具:sudo apt install pv
)
4.2 自动校验文件完整性
解压时自动校验:
tar -xzvWf 重要文件.tar.gz
(看到"Verify"字样说明校验通过)
4.3 解压到内存盘
临时处理敏感文件时:
tar -xzvf 机密文件.tar.gz -C /dev/shm/
(重启后自动清除,数据安全必备!)
五、年度最蠢错误排行榜
- 磁盘空间不足:解压到一半提示No space left(解压前记得df -h检查!)
- 覆盖重要文件:解压前先
tar -tzvf
查看文件列表 - 文件名乱码:遇到中文文件名时用
--force-local
参数 - 权限不够:记得在命令前加sudo(但别滥用!)
六、冷知识时间
你知道为什么参数是-xzvf
而不是其他字母吗?其实:
- x = eXtract
- z = Zip (gzip)
- v = Verbose
- f = File
(所以千万别记成-xzvf是"小张吃饭"的拼音缩写啊!)
七、终极测试题
来试试这个魔鬼级操作:
tar -xzvf 奇葩压缩包.tar.gz --exclude='*.tmp' --wildcards '*.log'
这个命令会:
A. 解压所有文件
B. 只解压.log文件
C. 解压除.tmp外的所有文件
D. 解压.log文件并排除.tmp文件
(答案在文末,先别偷看!)
正确答案:D
(是不是被–exclude和–wildcards的组合搞懵了?这就是tar参数的魅力!)