这个命令真的值得花一点时间去记录。
格式
最简单,如果处理.gz的文件,需要使用”-z“参数,符合认知。如果是bz2,需要使用”-j”选项。
解压 -x
“-x”
压缩 -c
其他
“-v”: verbose
“-f”: file name
实践
压缩
将qemu目录压缩成gz包。
tar -czvf qemu-bak.tar.gz qemu # 源目录在后面
解压
将上述压缩包解压
tar -zxvf qemu.tar.gz qemu # 目标文件在后面
解压到文件夹
首先创建文件夹: mkdir tmp-dir,然后使用 “-C” 参数解压到制定目录。
tar -zxvf qemu.tar.gz -C tmp-dir
解压 .tar.xz
tar xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
压缩 tbz2格式,附带权限
tar --owner root --group root -cjf kernel_supplements.tbz2 lib/modules
这条命令是压缩成 tbz2 文件,且带着相应的权限。具体的作用就是把 lib/modules目录下 的文件压缩成kernel_supplements.tbz2 文件。
压缩时不包括当前目录
参考这个链接: https://www.cnblogs.com/hh2737/p/7710830.html
如果打包一个文件夹比如一个dts文件,那么正常情况下我是压缩的这个包,但是,如果在项目中需要 我们把dts下的东西直接解压到 dtb 目录下,这样是不行的。因为解压的时候,正常是在 dtb/dts的。 那么,这就需要我们在压缩的时候做一些改动。
有两种方式可以解决这个问题:
- 进入dts文件夹
tar zcf dts.tar.gz *
这种方式会不会把这在生成的tar包也压缩进去,这值得我们怀疑,但是据我观察,好像不会的。
- 在外部排除
tar -zcf dts.tar.gz -C dts/ .
尤其别忘了后面的那一个”.”