Linux下文件的压缩和备份
Linux下文件的压缩和备份文/ heiyeluren
文件的备份和压缩是管理员遇到的首要问题,我刚学Linux,总结一下书上和网络上的方法。(本文章基于Redhat9)
一、使用tar命令进行备份
tar命令本来的作用是能够把很多文件放到一个小文件中进行归档,但是同时又能够对文件进行压缩。所以,一般情况下我们都采用tar进行文
件整理和压缩。
/* 把/root整个目录进行压缩备份 */# tar cvzf /tmp/root_backup_1215.tar.gz /root
那么我们就能够把 /tmp/root_backup_1215.tar.gz进行存储,比如保存到磁带机上等。
说明: 压缩的tar档案通常的扩展名是 tar.gz、tgz、或者tar.bz2。前两个扩展名一般是使用gzip命令进行压缩的tar档案,后一个扩展名是
基于bzip2的压缩,因为压缩算法的原因,后一个压缩更强。
同时,我们也很容易把已经打包压缩的文件进行恢复:
/* 从备份文件中进行还原 */# tar tkvzf root_backup_1215.tar.gz
说明: tar命令是路经相关的。如果将文件用绝对路经保存到一个目录中(即开头为斜杆,如/home/mj),则可以从计算机上的任何位置将文
件恢复到这个目录。如果使用相对路经(没有开头的斜杆,如/home/mj),则文件不一定恢复到原址,而是取决于当前工作目录。
/* 把备份文件释放出来 */# tar zxvf root_backup_1215.tar.gz
/* 把/root目录备份并且压缩 */# tar czvf root_backup_1215.tar.gz /root
tar命令选项 ---------------------------------------------------选项??????? 功能---------------------------------------------------? c???????? 生成档案? d???????? 比较档案与当前目录中的文件? f???????? 使用后面的档案文件名? j???????? 压缩成bzip2格式的? k???????? 不覆盖当前文件? r???????? 见文件添加到档案末尾? t???????? 列出当前档案中的文件? v???????? 冗长方式,列出进出档案的所有文件? z???????? Zip,按照普通gzip格式压缩文件? x???????? 从备份文件中还原文件---------------------------------------------------以上只是部分常用选项,更详细请参考手册
二、使用cpio备份存档cpio (copy in/out) 命令可以建立存档,跟tar不同之处在于,它能够处理标准的输入输出。顾名思义,就是复制,输入,输出的意思。如果要备份root的文件,使用下列命令:
# find /root | cpio -o > /tmp/root_backup_1215.cpio
cpio能够使用通配符将一组文件设置成标准输入。比如,下面见所有的.tif文件建立档案:
# find *.tif | cpio -o > /tmp/back.cpio
记住,find命令很灵活,下列命令把系统中所有的.tif文件进行归档:
# find / -name '*.tif' | cpio -o > /tmp/back_tif.cpio
同时,也很容易从cpio档案中恢复文件。下列命令恢复back_tif.cpio中的文件:
# cpio -i < back_tif.cpio
和tar命令一样,cpio命令恢复从目录保存的文件时,取决于是相对路经还是绝对路经。cpio命令还有一个优点是可以直接将文件发送给外部源,例如,下列命令恢复/root主目录中的文件,并把文件发送到SCSI磁带机:
# find /root | cpio -o -> /dev/st0# cpio -i < /dev/st0
CPIO的命令选项---------------------------------------------------选项?????????? 功能---------------------------------------------------?-A??????????? 添加到档案末尾,与-F密切相关?-F??????????? 指定档案文件名,可以换成反向箭头>?-i??????????? 从档案文件或设备读取?-o??????????? 复制到档案文件或者设备?-u??????????? 替换所有