linux备忘录-档案与文件系统的压缩与打包

知识点

文件扩展名与压缩解压缩工具

*.Z -> compress程序压缩的档案

*.gz -> gzip程序压缩的档案

*.bz2 -> bzip2程序压缩的档案

*.tar -> tar程序打包的数据,并没有压缩过

*.tar.gz -> tar打包的数据,并且经过gzip压缩

*.tar.bz2 -> tar打包的数据,并且经过bzip2压缩

目录相关

/var/spool/mail //系统中所有账号的邮件信箱
/var/spool/cron //所有账号的工作排成配置文件

散乱知识

find /etc -newer /etc/passwd 找出比/etc

常用的是 gzipbzip2 , compress已经过时

tarfile 仅进行打包的文件。tarball 既打包又压缩的文件。

命令

  1. gzip (常用的压缩程序,对compress、zip、gzip压缩的档案有效)

gzip [-cdtv#] 档案名

gzip -c 将压缩的数据输出到屏幕,可进行数据重导向

gzip -v 显示压缩信息

gzip -d 解压缩 (压缩文件会消失)

默认情况被压缩的文件会消失

gzip -9 -c man.config > man.config.gz (保留原本的文件)

  1. zcat (查看compress和gzip压缩的文本档案)
  2. bzip2 (压缩比比gzip好,对.bz .bz2 .tbz .tbz2有效)

bzip2 -c 将压缩的数据输出到屏幕上

bzip2 -z 压缩

bzip2 -d 解压缩

bzip2 -k 保留原文件

bzip2 -v 显示压缩信息

  1. bzcat (查看bzip2压缩的文本档案)
  2. tar (打包指令)

tar [-j|-z] [cv] [-f 建立的档名] filename 打包与压缩

tar [-j|-z] [tv] [-f 建立的档名] 查看档名

tar [-j|-z] [xv] [-f 建立的档名] [-C 目录] 解压缩

tar -cv 建立打包档案

tar -tv 查看档案名

tar -xv 解打包或解压缩功能

tar -j 通过bzip2支持进行压缩和解压缩

tar -z 通过gzip的支持进行压缩和解压缩

tar -v 显示过程信息

tar -f 指定压缩后档名

tar -C dir 在指定目录解压缩

tar -p 保留原本权限和属性

tar -P 保留绝对路径

tar --exclude filename 排除文件名

tar -jxv -f 打包档.tar.bz2 待解压档名 只解压一个档案

建议用法

压缩 tar -jcv -f filename.tar.bz2 要压缩的档案或目录名称

查询 tar -jtv -f filename.tar.bz2

解压缩 tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

  1. dump (备份命令)

待备份的资料是文件系统时,可使用完整的dump功能,能使用level0-9,能使用挂载点或装置文件名

待备份的资料只是目录时,备份的数据必须在该目录底下,仅能使用level0,无法建立/etc/dumpdates时间记录文件。

dump -S 列出备份所需的空间大小

dump -u 将dump的时间记录到/etc/dumpdates档案中。

dump -j 加入bzip2的支持

dump -level 指定level

dump -f 后接产生的档案

dump -W 列出在/etc/fstab中具有dump设定的partition是否被备份过

  1. restore (dump的复原命令)

restore -t -f dumpfile 查看dump档案

restore -r -f dumpfile 还原整个文件系统

restore -C -f dumpfile 查看文件系统与dumpfile的差异

restore -i 互动模式,可以只复原一部分数据

  1. mkisofs (将数据弄成一个映像档)

mkisofs -o 输出映像档名 指定输出映像档名

mkisofs -v 显示建造的过程

mkisofs -r 支持较新档名信息

mkisofs -m filename 排除文件

光盘的格式一般称为 iso9660

mkisofs -r -o /tmp/system.img -m /home/lost+found -graft-point /root=/root /home=/home /etc=/etc 将数据归类存放

  1. cdrecord (光盘刻录工具)

cdrecord -scanbus dev=ATA 查询刻录机位置

cdrecord dev=ATA:x,y,z 指定刻录机所在的位置。

下面是刻录CD的过程

1 -> cdrecord -v dev=ATA:1,1,0 blank=fast 先抹除光盘原始内容(非可重复读写可略过此步)

2 -> cdrecord -v dev=ATA:1,1,0 fs=8m -dummy -data /tmp/system.img 刻录CD

3 -> mount -t iso9660 /dev/cdrom /mnt 测试挂载一下

4 -> umount /dev/cdrom 或 umount /mnt

下面是刻录DVD的过程

1 -> cdrecord -v dev=ATA:1,1,0 blank=fast 先抹除

2 -> cdrecord -v dev=ATA:1,1,0 fs=8m -data -sao driveropts=burnfree /tmp/system.img 刻录DVD

3 -> mount /dev/cdrom /mnt 测试

4 -> umount /dev/cdrom 或 umount /mnt

  1. dd (直接硬盘级别的拷贝)

dd if=inputfile of=outputfile bs=blocksize count=blockcount

当bs未指定时,默认为一个sector的大小,512bytes

dd /etc/passwd /tmp/passwd.back 备份passwd文件

dd /etc/sda /tmp/mbr.back bs=512 count=1 备份磁盘第一个扇区,即MBR和partition table

dd /etc/sda2 /tmp/partition.back 直接备份一个分割槽或文件系统。

dd /dev/hdc1 /dev/hdc9 不需要进行格式化

  1. cpio (可用于备份任何东西)

cpio -ovcB > [file|device] 备份

cpio -ivcde < [file|device] 还原

cpio -ivct < [file|device] 查看

cpio -o 将数据copy输出到档案或装置上

cpio -d 自动建立目录,还原时建立新目录

find /boot -print

find /boot | cpio -ovcB > /tmp/boot.cpio 备份

cpio -idvc < /tmp/boot.cpio 还原

参考

鸟哥的Linux私房菜 第三版

上一篇:linux档案与文件的的压缩与打包


下一篇:iOS开发-捕获程序崩溃日志