Linux 解压命令tar的理解

时间:2024-10-11 16:37:50

今天回顾了下tar 这个打包工具的一些常用参数

 选项与参数:
-c :创建打包文件,可搭配 -v 来察看过程中被打包的档名(filename)
-t :察看打包文件的内容含有哪些档名,重点在察看『档名』就是了;
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。
-j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
-z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
-v :在压缩/解压缩的过程中,将正在处理的档名显示出来!
-f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项罗!
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。 其他后续练习会使用到的选项介绍:
-p :保留备份数据的原本权限与属性,常用於备份(-c)重要的配置档
-P :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将 FILE 打包!
  • 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
  • 查 询:tar -jtv -f filename.tar.bz2
  • 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

重点是--exclude 选项的应用

如我想备份下/root/家目录里的所有文件目录但我不想备份我在网上下载的一些源码包文件可以运行一下命令

 [root@box ~]# cd /qq/
[root@box qq]# tar -jcv -f backup-root-20130624.tar.bz2 /root --exclude=/root/*.tar.gz \
> --exclude=/root/*tar.bz2 --exclude=/root/*.tar /root/.config/gtk-2.0/gtkfilechooser.ini
/root/.imsettings.log
/root/.nautilus/
/root/视频/
[root@box qq]# ll
总用量 8404
-rw-r--r--. 1 root root 8580796 6月 24 23:25 backup-root-20130624.tar.bz2
drwx------. 2 root root 4096 6月 24 23:07 backups
drwx------. 2 root root 16384 6月 24 18:20 lost+found
drwxr-xr-x. 2 root root 4096 6月 24 19:49 test
[root@box qq]#

OK 这里需要注意的是  /root 与 /root/是完全不同的两个概念。 当然 /root 也可以写在 --exclude 后面 当然也可以 加入-p选项以保留文件的权限。