使用 tar 命令管理存档文件

时间:2021-09-17 03:18:06

tar命令用于将大型文件集汇集为一个文件(存档)

tar的三种操作:c(创建存档)、t(列出存档的内容)、x提取存档

tar的常用选项:f(要操作的存档文件名)、v(可视化操作)

创建压缩的tar存档

压缩方式:z(gzip)、j(bzip2)、J(xz)

1. 使用root用户,在/root/下创建目录 tardir1,并使用 cd 进入该目录

[root@desktop1 ~]# mkdir ~/tardir1
[root@desktop1 ~]# cd tardir1/

2.使用 tar 命令,将/etc/sysconfig/network-scripts/中的所有文件打包成一个文件, 文件名为 achieve1.tar,存储/root/tardir1/目录下

[root@desktop1 tardir1]# tar cf achieve1.tar /etc/sysconfig/network-scripts/*
tar: Removing leading `/' from member names
[root@desktop1 tardir1]# ls
achieve1.tar

3.使用 tar 命令,显示 achieve1.tar 中的文件列表

[root@desktop1 tardir1]# tar tf achieve1.tar
etc/sysconfig/network-scripts/ifcfg-br0
etc/sysconfig/network-scripts/ifcfg-eno16777736
etc/sysconfig/network-scripts/ifcfg-eno33554960
etc/sysconfig/network-scripts/ifcfg-eno50332184
etc/sysconfig/network-scripts/ifcfg-lo
etc/sysconfig/network-scripts/ifdown
...
etc/sysconfig/network-scripts/init.ipv6-global
etc/sysconfig/network-scripts/network-functions
etc/sysconfig/network-scripts/network-functions-ipv6
[root@desktop1 tardir1]#

4. 使用tar命令,释放achieve1.tar到/root/tardir1目录下,观察该目录下出现了etc 目录

[root@desktop1 tardir1]# ll
total
-rw-r--r--. root root Nov : achieve1.tar
drwxr-xr-x. root root Nov : etc

5. 将 achieve1.tar 复制到/home/student(student 用户的 home 目录下)

[root@desktop1 tardir1]# cp achieve1.tar /home/student/

6. 使用 student 用户,释放/home/student/achieve1.tar 到 student 的 home 目录下, 确认释放出来的所有文件的

用户和组都是 student(原来这些文件都是 root 用户的)

[student@desktop1 ~]$ ls
achieve1.tar
[student@desktop1 ~]$ tar xf achieve1.tar
[student@desktop1 ~]$ ls -l etc/sysconfig/network-scripts/
total
-rw-r--r--. student student Sep : ifcfg-br0
-rw-r--r--. student student Sep : ifcfg-eno16777736
-rw-r--r--. student student Sep : ifcfg-eno33554960
-rw-r--r--. student student Sep : ifcfg-eno50332184
-rw-r--r--. student student Apr ifcfg-lo
...

7. 使用 root 用户,创建/etc/sysconfig/network-scripts/下所有文件的压缩存档,只用 gzip 作为压缩方式,

压缩文件名为 achieve2.tar.gzip,存储于/root/tardir1/下

[root@desktop1 tardir1]# tar czf archieve2.tar.gz /etc/sysconfig/network-scripts/
tar: Removing leading `/' from member names

8. 删除/root/tardir1 下的 etc 目录及其所有子目录和子文件

[root@desktop1 tardir1]# ll
total
-rw-r--r--. root root Nov : achieve1.tar
-rw-r--r--. root root Nov : archieve2.tar.gz
drwxr-xr-x. root root Nov : etc
[root@desktop1 tardir1]# rm -rf etc/

9. 释放 achieve2.tar.gz 的归档文件到 tardir1 目录下,并查看

[root@desktop1 tardir1]# tar vxzf achieve2.tar.gz
etc/sysconfig/network-scripts/
etc/sysconfig/network-scripts/ifcfg-lo
...
etc/sysconfig/network-scripts/ifcfg-br0
[root@desktop1 tardir1]# ls etc/sysconfig/network-scripts/
ifcfg-br0 ifdown-routes ifup-plusb
ifcfg-eno16777736 ifdown-sit ifup-post
ifcfg-eno33554960 ifdown-Team ifup-ppp
ifcfg-eno50332184 ifdown-TeamPort ifup-routes
ifcfg-lo ifdown-tunnel ifup-sit
ifdown ifup ifup-Team
ifdown-bnep ifup-aliases ifup-TeamPort
ifdown-eth ifup-bnep ifup-tunnel
ifdown-ippp ifup-eth ifup-wireless
ifdown-ipv6 ifup-ippp init.ipv6-global
ifdown-isdn ifup-ipv6 network-functions
ifdown-post ifup-isdn network-functions-ipv6
ifdown-ppp ifup-plip
[root@desktop1 tardir1]#