简介
本文介绍Linux的压缩和解压缩相关命令。
tar(.tar.gz, .tar.bz2等)
示例
①将某个目录dirA制作为压缩包。
tar czf dirA.tar.gz dirA //将目录dirA压缩为文件包dirA.tar.gz,以gzip方式进行压缩
tar cjf dirA.tar.bz2 dirA //将目录dirA压缩为文件包dirA.tar.bz2,以bzip2方式进行压缩
②将某个压缩包文件dirA.tar.gz解开。(解开时,只用xf即可,它会自动解析格式)
tar xzf dirA.tar.gz //在当前目录下解开dirA.tar.gz,先使用gzip方式解压缩,然后解包
tar xjf dirA.tar.bz2 //在当前目录下解开dirA,tar.bzip2,先使用bzip2方式解压缩,然后解包
tar xzf dirA.tar.gz -C<dir> //将dirA.tar.gz解开到<dir>目录下
tar xjf dirA.tar.bz2 -C<dir> //将dirA.tar.bz2解开到<dir>目录下
注意:.tar.gz和.tgz是一种格式。
选项
选项 | 含义 |
-A或--catenate | 新增文件到已存在的备份文件。 |
-b<区块数目>或--blocking-factor=<区块数目> | 设置每笔记录的区块数目,每个区块大小为12Bytes。 |
-B或--read-full-records | 读取数据时重设区块大小。 |
-c或--create | 建立新的备份文件。 |
-C<目的目录>或--directory=<目的目录> | 切换到指定的目录。 |
-d或--diff或--compare | 对比备份文件内和文件系统上的文件的差异。 |
-f<备份文件>或--file=<备份文件> | 指定备份文件。 |
-F<Script文件>或--info-script=<Script文件> | 每次更换磁带时,就执行指定的Script文件。 |
-g或--listed-incremental | 处理GNU格式的大量备份。 |
-G或--incremental | 处理旧的GNU格式的大量备份。 |
-h或--dereference | 不建立符号连接,直接复制该连接所指向的原始文件。 |
-i或--ignore-zeros | 忽略备份文件中的0Byte区块,也就是EOF。 |
-j | 使用bzip2方式进行处理,它与“c”结合就表示压缩,与“x”结合就表示解压缩。 |
-J | 使用xz方式进行处理,它与“c”结合就表示压缩,与“x”结合就表示解压缩。 |
-k或--keep-old-files | 解开备份文件时,不覆盖已有的文件。 |
-K<文件>或--starting-file=<文件> | 从指定的文件开始还原。 |
-l或--one-file-system | 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。 |
-L<媒体容量>或-tape-length=<媒体容量> | 设置存放每体的容量,单位以1024Bytes计 |
-m或--modification-time | 还原文件时,不变更文件的更改时间。 |
-M或--multi-volume | 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。 |
-N<日期格式>或--newer=<日期时间> | 只将较指定日期更新的文件保存到备份文件里。 |
-o或--old-archive或--portability | 将资料写入备份文件时使用V7格式。 |
-O或--stdout | 把从备份文件里还原的文件输出到标准输出设备。 |
-p或--same-permissions | 用原来的文件权限还原文件。 |
-P或--absolute-names | 文件名使用绝对名称,不移除文件名称前的"/"号。 |
-r或--append | 新增文件到已存在的备份文件的结尾部分。 |
-R或--block-number | 列出每个信息在备份文件中的区块编号。 |
-s或--same-order | 还原文件的顺序和备份文件内的存放顺序相同。 |
-S或--sparse | 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。 |
-t或--list | 列出备份文件的内容。 |
-T<范本文件>或--files-from=<范本文件> | 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。 |
-u或--update | 仅置换较备份文件内的文件更新的文件。 |
-U或--unlink-first | 解开压缩文件还原文件之前,先解除文件的连接。 |
-v或--verbose | 显示指令执行过程。 |
-V<卷册名称>或--label=<卷册名称> | 建立使用指定的卷册名称的备份文件。 |
-w或--interactive | 遭遇问题时先询问用户。 |
-W或--verify | 写入备份文件后,确认文件正确无误。 |
-x或--extract或--get | 从备份文件中还原文件。 |
-X<范本文件>或--exclude-from=<范本文件> | 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。 |
-z或--gzip或--ungzip | 通过gzip指令处理备份文件。与‘V’结合就表示压缩,与“x”结合就表示解缩。 |
-Z或--compress或--uncompress | 通过compress指令处理备份文件。 |
-<设备编号><存储密度> | 设置备份用的外围设备编号及存放数据的密度。 |
--after-date=<日期时间> | 此参数的效果和指定"-N"参数相同。 |
--atime-preserve | 不变更文件的存取时间。 |
--backup=<备份方式>或--backup | 移除文件前先进行备份。 |
--checkpoint | 读取备份文件时列出目录名称。 |
--concatenate | 此参数的效果和指定"-A"参数相同。 |
--confirmation | 此参数的效果和指定"-w"参数相同。 |
--delete | 从备份文件中删除指定的文件。 |
--exclude=<范本样式> | 排除符合范本样式的文件。 |
--group=<群组名称> | 把加入设备文件中的文件的所属群组设成指定的群组。 |
--help | 在线帮助。 |
--ignore-failed-read | 忽略数据读取错误,不中断程序的执行。 |
--new-volume-script=<Script文件> | 此参数的效果和指定"-F"参数相同。 |
--newer-mtime | 只保存更改过的文件。 |
--no-recursion | 不做递归处理,也就是指定目录下的所有文件及子目录不予处理。 |
--null | 从null设备读取文件名称。 |
--numeric-owner | 以用户识别码及群组识别码取代用户名称和群组名称。 |
--owner=<用户名称> | 把加入备份文件中的文件的拥有者设成指定的用户。 |
--posix | 将数据写入备份文件时使用POSIX格式。 |
--preserve | 此参数的效果和指定"-ps"参数相同。 |
--preserve-order | 此参数的效果和指定"-A"参数相同。 |
--preserve-permissions | 此参数的效果和指定"-p"参数相同。 |
--record-size=<区块数目> | 此参数的效果和指定"-b"参数相同。 |
--recursive-unlink | 解开压缩文件还原目录之前,先解除整个目录下所有文件的连接。 |
--remove-files | 文件加入备份文件后,就将其删除。 |
--rsh-command=<执行指令> | 设置要在远端主机上执行的指令,以取代rsh指令。 |
--same-owner | 尝试以相同的文件拥有者还原文件。 |
--suffix=<备份字尾字符串> | 移除文件前先行备份。 |
--totals | 备份文件建立后,列出文件大小。 |
--use-compress-program=<执行指令> | 通过指定的指令处理备份文件。 |
--version | 显示版本信息。 |
--volno-file=<编号文件> | 使用指定文件内的编号取代预设的卷册编号。 |
unzip(.zip)
解压.zip文件
例:unzip xxx.zip
gunzip(.gz)
解压缩.gz文件
例:gunzip xxx.gz (或gzip -d xxx.gz)
cpio
1.解压文件
- 解压cpio文件:cpio -idmv < filename.cpio
- 解压img文件: cpio -idmv < filename.img
注意:cpio不能解压到指定目录,只能解压到当前目录,防止解压后混乱,方法如下:
- mkdir tmp;
- cp filename.cpio tmp;
- cpio -idmv --no-absolute-filenames < filename.cpio;
这样,就能解压到tmp目录了
2.备份还原
备份:cpio -covB > [file|device] 将数据备份到文件或设备上
还原:cpio -icduv < [file|device} 将数据还原到系统中
常用参数:
-o :将数据copy到文件或设备上
-i :将数据从文件或设备上还原到系统中
-t :查看cpio建立的文件或设备内容
-c :一种比较新的portable format方式存储
-v :在屏幕上显示备份过程中的文件名
-B :让预设的blocks可以增加到5120bytes,默认是512bytes,这样可以使备份速度加快
-d :自动建立目录,这样还原时才不会出现找不到路径的问题
-u :更新,用较新的文件覆盖旧的文件
-m :创建文件时保留以前文件的修改时间
--no-absolute-filenames:
.cpio.gz
有xxx.cpio.gz文件
gunzip xxx.cpio.gz //生成xxx.cpio文件
cpio -idmv < xxx.cpio //生成xxx文件夹