Linux tar 命令 将归档内指定文件解压到指定目录

首先介绍一下 tar 命令:

用途:打包文件(制作归档文件)、释放归档文件

格式:

       tar  [选项]...  归档文件名  源文件或目录

       tar  [选项]...   归档文件名  [-C  目标目录]

常用命令选项:

 

  -c 

创建 .tar 格式的包文件
  -x 解开 .tar 格式的包文件
  -v 输出详细信息
  -f   表示使用归档文件
  -t 列表查看包内的文件
  -p 保持源文件的原来属性
  -P 保持源文件的绝对路径
  -C 建包或解包时进入指定的目录
  -z 调用gzip程序进行压缩或解压
  -j 调用bzip2程序进行压缩或解压
  -J 调用XZ程序进行压缩或解压
  -A 将归档文件追加到另一个归档文件中

现在根据一个练习题来讲一下tar命令和选项的具体应用:

第一步:

[root@dbserver02 ~]# tar cf /tmp/sxkj.tar -C /etc group passwd shadow

第二步:

[root@dbserver02 ~]# tar -tvf /tmp/sxkj.tar
-rw-r--r-- root/root       707 2018-11-23 21:30 group
-rw-r--r-- root/root      1524 2018-11-23 21:41 passwd
---------- root/root      1125 2018-11-23 21:45 shadow

第三步:

[root@dbserver02 ~]# tar rf /tmp/sxkj.tar .bashrc

然后可以查看sxkj.tar里面的内容:

[root@dbserver02 ~]# tar -tvf /tmp/sxkj.tar
-rw-r--r-- root/root       707 2018-11-23 21:30 group
-rw-r--r-- root/root      1524 2018-11-23 21:41 passwd
---------- root/root      1125 2018-11-23 21:45 shadow
-rw-r--r-- root/root       176 2004-09-23 11:59 .bashrc

第四步:

已经知道sxkj.tar包里有四个文件,现在要求把其中的指定的一个文件解压到指定的 /tmp 目录;这是难点所在,代码如下:

[root@dbserver02 ~]# tar xvf /tmp/sxkj.tar -C /home group
group

注意:此处把包里的group文件放到了全部命令的最后。

第五步:

[root@dbserver02 ~]# tar cjvf /tmp/home.tar.bz2 /home
tar: Removing leading `/' from member names
/home/
/home/group

这里要求把路径中的 “ / ” 删除,因为在解压缩的过程中一定要注意绝对路径相对路径问题,推荐使用相对路径。如果使用了绝对路径,系统会自动修改成相对路径。

第六步:

[root@dbserver02 ~]# tar xjvf /tmp/home.tar.bz2 -C /tmp
home/
home/group
[root@dbserver02 ~]# ls /tmp
home  home.tar.bz2  sxkj.tar

可以看到目录/tmp下已经有了home目录。

熟练掌握这个练习就应该可以掌握tar命令了。

猜你喜欢

转载自blog.csdn.net/SunZLong/article/details/84440282
今日推荐