Linux的常用指令--tar
作为一个嵌入式 Linux 开发者,尤其是在 RV1126b 这类开发板上做项目时,你一定遇到过这些 “刚需场景”:把修改后的 endoscope 和 ui 源码打包发给同事,却不想带上.git 和 build 目录;备份整个根文件系统,保留所有权限;解压 RV1126b 的 release_v1.2.0 大 SDK 压缩包;或者把交叉编译好的库文件打包传到开发板上 —— 这时候,tar 就是你最核心的 “打包压缩工具”,能灵活处理嵌入式开发中的各种文件打包、备份、传输需求。
在我看来,tar 就像嵌入式开发中的 “文件打包机”:它本身是 “打包工具”(把多个文件 / 目录打成一个.tar 包),再配合 gzip/bzip2/xz 实现 “压缩”,形成.tar.gz(tgz)、.tar.bz2、.tar.xz 这些常见的压缩包格式。不管是备份项目、传输源码,还是解压 SDK,tar 都是嵌入式开发的 “必备工具”。
tar 的核心逻辑
很多新手会混淆 “打包” 和 “压缩”,这里先明确:
- 打包:把多个文件 / 目录合并成一个文件(.tar),不改变大小,只是方便传输;
- 压缩:用 gzip(.gz)、bzip2(.bz2)、xz(.xz)等工具把.tar 包压缩变小,节省空间。 所以常见的压缩包后缀:
- .tar.gz / .tgz:tar 打包 + gzip 压缩(最常用,平衡速度和压缩率);
- .tar.bz2:tar 打包 + bzip2 压缩(压缩率比 gzip 高,但慢一点);
- .tar.xz:tar 打包 + xz 压缩(压缩率最高,适合大 SDK,比如 RV1126b 的 release 包)。*
这是加粗斜体文本
基础用法:嵌入式开发高频场景(打包 + 解压)
场景 1:打包压缩项目源码(发给同事)
tar -czvf dht11.tar.gz dht11
场景 2:解压压缩包
tar -tzv -f dht11
场景 3:查看压缩包内容(不解压)
tar -tzv -f dht11.tar.gz
场景 4:解压到指定目录(-C)
解压到test目录
tar -xzv -f dht11.tar.gz -C test/
总结
tar 是嵌入式开发中 “打包、压缩、备份、传输” 的核心工具,记住三个核心用法:
1.打包压缩:tar -czv -f 包名.tar.gz --exclude=无用目录 源目录/(gzip 最常用);
2.解压:tar -xzv -f 包名.tar.gz -C 目标目录(.xz 用 - xJ,.bz2 用 - xj);
3.进阶场景:用 -p 保留权限(备份根文件系统)、--strip-components 去掉顶层目录(解压 SDK)、结合 ssh 直接传输文件。
不管是备份 RV1126b 的项目源码、传输交叉编译产物,还是解压大 SDK,tar 都能灵活应对,是嵌入式开发的 “必备利器”~ tar 的大致用法就讲到这里,大家有什么在嵌入式开发中用 tar 的经典场景或小技巧,欢迎在评论区交流~