linux常见的压缩命令
常见扩展名及含义:
*.Z compress程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.gz gzip程序压缩的文件
*.tar tar程序打包的数据,并没有压缩过
*.tar.gz tar程序打包的文件,并经过gzip压缩
compress
选项:
-d 用来解压缩的参数
-r 可以连同目录下的文件同时压缩
-c 将压缩数据输出为标准输出(输出到屏幕)
gzip zcat(显示压缩文件的内容) 扩展名为.gz
注:可以通过 > 更改输出文件名,并保留原来的文件 但要加-c
例如 gzip -9 -c 1.txt > 2.txt.gz
选项:
-c 将压缩的数据输出到屏幕上,可通过数据流重导向来处理
-d 解压缩的参数
-t 可以用来检验一个压缩文件的一致性,看文件有无错误
-# 压缩等级,-1最快,但压缩比最差,-9最慢,但是压缩比最好 默认-6
bzip2 bzcat(显示压缩文件的内容) 扩展名为.bz2
选项:
-c 将压缩过程中产生的数据输出到屏幕
-d 解压缩的参数
-z 压缩的参数
-# 压缩比
tar(可以将整个目录打包成一个文件,默认不会覆盖原来的文件)
选项:
-c 建立压缩文件的命令(create)
-x 解压缩文件的参数命令
-t 查看tarfile里的文件
-z 是否同时具有gzip的属性,即是否需要用gzip压缩
-j 是否同时具有bzip2的属性
-v 压缩过程中显示文件,这个常用,但是不建议在后台执行
-f 使用文件名,注意在f之后要立即接文件名,不要再加参数
-p 使用源文件的属性
-P 使用绝对路径来压缩
-N 比后面接的时间还要新的文件才会被打包
--exclude 压缩过程中不要将FILE打包
注意:如果压缩命令如下tar -czvf 123.tar.gz /home/duxing/文档/
则查看压缩文件要如下 tar -tzvf 123.tar.gz
解则压tar -xzvf 123.tar.gz
如果只要压缩文件内的一个文件则可以通过下面的命令来执行
技巧:
比如,我要备份/home /etc但是不要/home/dmtsai
tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
将/etc/打包后直接在/tmp中解压,而不产生文件
tar -cvf - /etc | tar -xvf -
- - | 分别代表 标准输入,标准输出,管道
绝对路径与权限问题
如果使用绝对路径,那么默认情况下tar就会去掉绝对路径,规则就会
覆盖掉用户系统上原来的文件可以通过-P来指定使用绝对路径打包
-p(小写)permission(权限的意思)使用这个参数之后被打包的文件
将不会根据用户的身份来改变权限
文件的更新日期
-N 可以只备份新的文件而不备份原来的文件
打包之后压缩的文件称之为tarball 不压缩的文件称之为tarfile
dd(可以用来备份整个的分区)
选项:
if 是输入文件,也可以是设备
of 是输出文件,也可以是设备
bs 规划的一个块的大小,如果没有设置默认是512字节
count 多少个bs的意思
例:
将/etc/passwd 备份到 /tmp/passwd.back中
dd if=/etc/passwd of=/tmp/passwd.back
3+1 表示有三个完整的512个字节,一个不完整的
cpio (通过数据的重导向,将文件进行输入、输出的一种方式)
选项:
-o 将数据复制输出到文件或设备
-i 将数据从文件或设备复制到系统中
-t 查看cpio建立的文件或设备的内容
-c 一种较新的可移植格式的存储
-v 让存储过程中文件名称可以再屏幕上显示
-B 让默认的块可以增加到5120字节,默认512字节
-d 自动建立目录 由于cpio的内容可能不在同一个目录,通过这个选项
可以自动 将所需要的目录建立起来
-u 自动将较新的文件覆盖较旧的文件
例如:
可以通过find / -print | cpio -covB > /dev/st0
将系统上的数据都写入到磁带机
通过cpio -icdvt < /dev/st0 将磁带机中文件名输出到屏幕
cpio -icduv < /dev/st0 将磁带机的数据还原回来
最后我再说一下还有一个命令这书上没有 但是太重要了那就是zip
zip [选项] 压缩文件名 需要压缩的文档列表
unzip [选项] 压缩文件名
zip选 项 含 义
-r 递归压缩,将指定目录下的所有文件以及子目录全部压缩
-d 从压缩文件内删除指定的文件
-i “文件列表” 只压缩文件列表中的文件
-x “文件列表” 压缩时排除文件列表中指定的文件
-u 更新文件到压缩文件中
-m 将文件加入压缩文件压缩后,删除原始文件,即把文件移到压缩文件中
-F 尝试修复损坏的压缩文件
-T 检查压缩文件内的每个文件是否正确无误
- 压缩级别 压缩级别是一个1~9的数字
unzip选 项 含 义
-x "文件列表" 解压文件,但不包含文件列表中指定的文件
-t 测试压缩文件有无损坏,并不解压
-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压
-n 解压时不覆盖已经存在的文件
-o 解压时覆盖已经存在的文件,并且不要求用户确认
-d 目录名 把压缩文件解压到指定目录下
总结:
这一章通过常用的压缩,打包命令,介绍了数据的备份,其中最后两个命令dd和cpio的用法有些模糊,主要是书是入门书,对某些不常用的命令和高级的命令介绍太浅原因还是对各种存储设备在系统中表示方法理解的不是特别透,好多设备如:磁带机等,无法实验,加上虚拟机和物理机的差距。总体来说这章内容很实用