gzip,zcat
root@Ubuntu:~# gzip [-cdtv#] 文件名 root@Ubuntu:~# zcat 文件名.gz
参数:
默认不用参数直接压缩
默认压缩完后删除源文件
默认解压完后删除源文件
-c:将压缩的数据输出到屏幕,课通过数据流量重定向来处理
-d:解压缩的数据
-t:可以用来检验一个压缩文件的一致性,看看文件有无错误
-v:可以显示出原文件/压缩文件的压缩比等信息
-#:压缩等级,-1最快,但是压缩比最差# 将/etc/manpath.config复制到/tmp中,并且以gzip压缩: root@Ubuntu:~# cd /tmp root@Ubuntu:/tmp# cp /etc/manpath.config . root@Ubuntu:/tmp# gzip -v manpath.config manpath.config: 62.3% -- replaced with manpath.config.gz root@Ubuntu:/tmp# ll /etc/manpath.config -rw-r--r-- 1 root root 5170 11月 7 2015 /etc/manpath.config root@Ubuntu:/tmp#
cat可以读文件,zcat可以读取纯文本被压缩后的压缩文件
# 由于man.config是文本文件,将压缩文件的内容读出来: root@Ubuntu:/tmp# zcat manpath.config.gz # 将文件解压缩: root@Ubuntu:/tmp# gzip -9 -c manpath.config.gz > man.config.gz -rw-r--r-- 1 root root 2024 3月 8 18:28 man.config.gz -rw-r--r-- 1 root root 1983 3月 8 18:25 manpath.config.gz
bzip2,bzcat
root@Ubuntu:/tmp# bzip2 [-cdkzv#] 文件名 root@Ubuntu:/tmp# bzip2 文件名.bz2
参数:
默认不用参数直接压缩
默认压缩完后删除源文件
默认解压完后删除源文件
-c:将压缩过程产生的数据输出到屏幕上
-d:解压缩的参数
-k:保留源文件,而不会删除原始文件
-z:压缩的参数
-v:显示源文件/压缩文件的压缩比
-#:与gzip同样的,都是计算压缩比的参数# 将/tmp/manpath.config以bzip2压缩: root@Ubuntu:/tmp# bzip2 -z manpath.config # 将man.config.bz2的内容读出来: root@Ubuntu:/tmp# bzcat manpath.config.bz2 # 将manpath.config.bz2解压缩: root@Ubuntu:/tmp# bzip2 -d manpath.config.bz2 # 将manpath.config用最佳压缩比压缩,并保留原本的文件: root@Ubuntu:/tmp# bzip2 -9 -c manpath.config > man.config.bz2
tar
# 打包与压缩: [root@CentOS ~]# tar [-j|-z] [cv] [-f 新建的文件名] filename... # 查看文件名: [root@CentOS ~]# tar [-j|-z] [tv] [-f 新建的文件名] # 解压缩: [root@CentOS ~]# tar [-f|-z] [xv] [-f 新建的文件名] [-C 目录]
参数:
-c:新建打包文件,可搭配-v来查看过程中被打包的文件名
-t:查看打包文件的内容含有哪些文件名
-x:解压缩或解打包的功能,可以搭配-C在特定目录解开
特别留意-c,-t,-x不可同时出现在同一串命令行中
-j:通过bzip2的支持进行压缩/解压缩,文件名最好为*.tar.bz2
-z:通过gzip的支持进行解压缩,文件名最好为*.tar.gz
-v:在压缩/解压缩的过程中,将文件名显示出来
-f filename:后接文件名
-C 目录:在特定目录解压缩时使用
-p:保留备份数据的原本权限与属性,常用于备份重要的配置文件
-P:保留绝对路径,即允许备份数据中含有根目录存在之意
压缩:tar -jcv -f filename.tar.bz2
查询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
使用tar加入-j或-z的参数备份/etc/目录# 用gzip备份/etc: [root@CentOS ~]# tar -zpcv -f /root/etc.tar.gz /etc [root@CentOS ~]# ll -rw-r--r--. 1 root root 10649317 Mar 8 06:45 etc.tar.gz # 用bzip2备份/etc: [root@CentOS ~]# ll -rw-r--r--. 1 root root 9081686 Mar 8 06:47 etc.tar.bz2 # 查看文件名: [root@CentOS ~]# tar -jtv -f /root/etc.tar.bz2
如果去掉根目录,假设你讲备份数据在/tmp中解开,那么解压缩的文件名就会变成/tmp/etc/xxx。但是如果没有去掉根目录,解压缩后的文件名就会是绝对路径,即解压缩后的数据一定会被放置在/etc/xxx去。如此一来,原本的/etc/下面的数据就会被覆盖
# 将文件名中的(根)目录备份下来,并查看一下备份文件的内容文件名 [root@CentOS ~]# tar -jpPcv -f /root/etc.and.root.tar.bz2 /etc [root@CentOS ~]# tar -jtf /root/etc.and.root.tar.bz2 # 加上-P参数,文件内的根目录就会存在
# 将备份的数据解压缩,并考虑特定目录的解压缩操作(-C参数的应用) [root@CentOS ~]# tar -jxv -f /root/etc.tar.bz2 [root@CentOS ~]# ll drwxr-xr-x. 154 root root 12288 Mar 8 05:50 etc
仅解开单一文件的方法:
[root@CentOS ~]# tar -jtv -f /root/etc.tar.bz2 } grep 'shadow' tar: }: Not found in archive tar: grep: Not found in archive tar: shadow: Not found in archive tar: Exiting with failure status due to previous errors [root@CentOS ~]# tar -jtv -f /root/etc.tar.bz2 | grep 'shadow' ---------- root/root 1383 2017-03-01 16:50 etc/shadow- ---------- root/root 1375 2017-03-02 05:22 etc/shadow ---------- root/root 856 2017-03-01 16:50 etc/gshadow- ---------- root/root 867 2017-03-01 16:50 etc/gshadow # tar -jxv -f 打包文件.tar.bz2 特解开文件名 [root@CentOS ~]# tar -jxv -f /root/etc.tar.bz2 etc/shadow etc/shadow [root@CentOS ~]# ll etc ----------. 1 root root 1375 Mar 2 05:22 etc/shadow
打包某目录,但不含有该目录下的某些文件的做法:
# 打包/root和/etc这两个重要目录,但却不想打包/root/etc*开头的文件 # 假设这个新的文件要放置在/root/system.tar.bz2,当然这个文件不要打包自己(因为这个文件放在/root下面) [root@CentOS ~]# tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2 /etc /root
尽备份比某个时刻新的文件:
# 先由find找出比/etc/passwwwd 还要新的文件: [root@CentOS ~]# find /etc -newer /etc/passwd [root@CentOS ~]# ll /etc/passwd -rw-r--r--. 1 root root 2548 Mar 1 16:50 /etc/passwd # 使用tar进行打包,,日期为2017/03/07: [root@CentOS ~]# tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2017.03.07" /etc/* # 显示文件: [root@CentOS ~]# tar -jtv -f /root/etc.newer.then.passwd.tar.bz2 > grep -v '/$'
特殊应用:利用管道命令与数据流
# 将/etc整个目录一边打包一边在/tmp中解开 [root@CentOS ~]# cd /tmp/ [root@CentOS tmp]# tar -cvf - /etc | tar -xvf - # 这个命令有点像cp -r /etc /tmp
- 完整备份工具:dump
参数:
-S:仅列出后面的待备份数据需要多少磁盘空间才能够备份完毕
-u:将这次dump的时间记录到/etc/dumpdateS文件中
-v:将dump的文件过程显示出来
-j:加入bzip2的支持,将数据进行压缩
-levle:等级
-f:有点类似tar,后面接产生的文件
-W:列出/etc/fatab里面的具有dump设置的分区是否有备份过
- restore:恢复备份
- mkisofs:光盘写入工具
cdrecord:光盘刻录工具
dd
cpio
鸟哥的linux私房菜学习笔记《十九》压缩、备份、还原和刻录
最新推荐文章于 2023-09-17 16:55:01 发布