运维日记012 - Linux下的tar命令

24 篇文章 1 订阅
11 篇文章 0 订阅

运维日记012 - Linux下的tar命令

Tar是Linux下的“打包工具”。所谓“打包”,就是将多个目录或者文件打包成一个大文件。而且tar命令还可以通过调用gzip/bzip2等压缩命令将打包文件进行压缩。Tar的本意是TAp aRchive,即操作磁带文档,但基于共同的文件系统机制,tar同样也适用于普通磁盘文件。目前tar是Linux环境下最常用的备份工具之一。

Tar命令的常用参数

Tar的选项极多,但通常只需要记住几个常用的即可,这里列出我认为必要的:

三个基本动作

特别注意:-c、-t、-x三个参数不能同时出现

参数说明
-c新建打包文件
-t查看打包文件的内容含有哪些文件
-x解包

与压缩有关的参数

这几个参数配合-c或者-x参数使用,通过调用相关的压缩命令对打包文件进行压缩或者解压。

参数说明
-z调用gzip进行压缩或解压
-j调用bzip2进行压缩或解压
-J调用xz进行压缩或解压

如果用gzip压缩,则生成的目标文件名最好按照习惯将后缀名命名为.gz;如果是bzip2压缩,最好是.bz2;而xz压缩,则最好是.xz。

其他参数

参数说明
-v显示详细信息,verbose
-f filename-f后面指定文件名
-C指定解包的目录,如不指定将在当前目录解包
-P(大写)保留文件的权限与属性
-p(小写)保留绝对路径
–exclude=FILE在备份过程中,不要将FILE打包

Tar命令的使用

Tar命令的使用非常简单,只要记住以下三种方式即可:

  • 打包压缩
$ tar -czvf filename.tar.gz file_or_dir_name

该命名将文件或目录file_or_dir_name打包并用gzip压缩为filename.tar.gz。你也可以使用-j或者-J参数调用bzip2或者xz压缩,对应的参数组合为-cjvf-cJvf。有的人喜欢把-f参数单独写,也不失为一种好的习惯,如:

$ tar -czv -f filename.tar.gz file_or_dir_name

当然你喜欢第一种写法也没错,只是要记住,-f后面必须紧跟要处理的文件名,而前面三个参数的顺序随意可变。

  • 查询
$ tar -xzv -f filename.tar.gz

该命令查询filename.tar.gz这个打包压缩文件里面包含了哪些文件和目录。

  • 解压解包
$ tar -xzv -f filename.tar.gz -C dir_name

该命令将打包压缩文件filename.tar.gz解压解包到指定目录dir_name中。如果不跟-C参数的话,就会解到当前目录中。

实战举例

案例:写一个脚本,每天会自动备份一次/etc目录下的所有文件,将备份文件存放在/tmp目录下,并且文件名自动命名为etc-备份日期.tar.gz,如2016年9月15日备份的文件名为etc-2016-09-15.tar.gz。

1、写shell脚本

# vim ~/backup.sh

#! /bin/bash
tar czvf /tmp/etc-`date +%F.tar.gz /etc`

2、添加定时器任务

# crontab -e

自动打开vim,在其中编辑定时器任务,设置每日凌晨2点0分执行备份操作。

# crontab -l

0   2   *   *   *   /root/backup.sh

设置完毕!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值