tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
打包
- tar -cf create.tar create.log
[root@localhost tar_cmd]# tar cf create.tar create.log
[root@localhost tar_cmd]# ls
create.log create.tar i40e-1.4.25.tar.gz
[root@localhost tar_cmd]# ll
total 1260
-rw-r--r--. 1 root root 425291 Jul 11 19:22 create.log
-rw-r--r--. 1 root root 430080 Jul 11 19:23 create.tar
- 打包多个文件
[root@localhost tar_cmd]# tar cf all_create_log.tar create*.log
[root@localhost tar_cmd]# ls -lh
total 2.5M
-rw-r--r--. 1 root root 1.3M Jul 11 19:34 all_create_log.tar
-rw-r--r--. 1 root root 416K Jul 11 19:33 create1.log
-rw-r--r--. 1 root root 416K Jul 11 19:33 create2.log
-rw-r--r--. 1 root root 416K Jul 11 19:22 create.log
-----------------------------------------------------------------
[root@localhost tar_cmd]# tar -tf all_create_log.tar
create1.log
create2.log
create.log
压缩
- tar zcf create.tar.gz create.log
[root@localhost tar_cmd]# tar zcf create.tar.gz create.log
[root@localhost tar_cmd]# ls -lh
total 0.5M
-rw-r--r--. 1 root root 416K Jul 11 19:22 create.log
-rw-r--r--. 1 root root 36K Jul 11 19:38 create.tar.gz
- tar zcf all_create_log.tar.gz create*.log
[root@localhost tar_cmd]# tar zcf all_create_log.tar.gz create*.log
[root@localhost tar_cmd]# ls -lh
total 1.4M
-rw-r--r--. 1 root root 107K Jul 11 19:40 all_create_log.tar.gz
-rw-r--r--. 1 root root 416K Jul 11 19:33 create1.log
-rw-r--r--. 1 root root 416K Jul 11 19:33 create2.log
-rw-r--r--. 1 root root 416K Jul 11 19:22 create.log
- 查看包含的文件
[root@localhost tar_cmd]# tar tf all_create_log.tar.gz
create1.log
create2.log
create.log
解压
- tar zxf create.tar.gz
[root@localhost tar_cmd]# ls
create.tar.gz
[root@localhost tar_cmd]# tar zxf create.tar.gz
[root@localhost tar_cmd]# ls
create.log create.tar.gz
[root@localhost tar_cmd]# ls
all_create_log.tar.gz
[root@localhost tar_cmd]# tar zxf all_create_log.tar.gz
[root@localhost tar_cmd]# ls -lh
total 1.4M
-rw-r--r--. 1 root root 107K Jul 11 19:40 all_create_log.tar.gz
-rw-r--r--. 1 root root 416K Jul 11 19:33 create1.log
-rw-r--r--. 1 root root 416K Jul 11 19:33 create2.log
-rw-r--r--. 1 root root 416K Jul 11 19:22 create.log
- 查看解压过程
[root@localhost tar_cmd]# ls
all_create_log.tar.gz
[root@localhost tar_cmd]# tar zvxf all_create_log.tar.gz
create1.log
create2.log
create.log
[root@localhost tar_cmd]# ls
all_create_log.tar.gz create1.log create2.log create.log
问题
执行 **** 报错
[root@localhost ~]# tar -zcf log-bak.tar.gz /var/log
tar: Removing leading `/' from member names
原因:其原因是tar默认为相对路径,使用绝对路径的话就回报这个错,可以使用-P参数(注意大写)解决这个问题.
修改为:
tar -zcPf log-bak.tar.gz /var/log