.tar
解包:tar -xvf FileName.tar
打包:tar -cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
序号 | 选项 | 说明 |
---|---|---|
1 | -c | 创建存档文件,与-x相斥(create) |
2 | -t | 列出档案文件的文件列表 |
3 | -x | 解包存档文件,与-c相斥 |
4 | -A | 合并存档文件 |
5 | -d | 比较存档文件与源文件 |
6 | -r | 追加文件到存档文件末尾 |
7 | -u | 更新存档文件 |
8 | -f | 指定存档文件,与其它选项同时使用时,必须在最后例如tar -xjvf a.tar.bz2 |
9 | -v | 显示详细处理信息 |
10 | -C | 转到指定目录,常用于解开存档文件到指定目录 |
11 | -j | 调用bzip2程序 |
12 | -z | 调用gzip程序 |
13 | -Z | 调用 compress 程序 |
序号 | 选项 | 说明 |
---|---|---|
1 | tar xjvf a.tar.bz2 | 解压 a.tar.bz2 文件,并显示详细信息 |
2 | tar xzvf b.tar.gz -C /home/leo | 解压 b.tar.gz 文件,并指定解压到/home/leo/目录 |
3 | tar cjvf drivers.tar.bz2 drivers | 将 drivers 目录的文件打包,创建一个.tar.bz2 压缩文件 |
.jar
打jar包(要到指定文件夹下压缩)
jar -cvf app.jar *
.zip
解压:unzip -d 指定解压路径 FileName.zip
压缩:zip FileName.zip DirName
1、安装zip、unzip应用。
yum install zip unzip
2、压缩和解压文件
OPTION | Describe | And | OPTION | Describe |
---|---|---|---|---|
-A | 调整自解压程序。 | -su | 类似 -sf 但是展示转义 UTF-8 Unicode 名称,如果存在。 | |
-c | 添加单行注释。 | -sU | 类似 -sf 但是展示转义 UTF-8 Unicode 名称。 | |
-d | 从 zipfile 中删除条目。 | -t | 包括在指定日期当天货之后有修改的文件。 | |
-db | 展示正在执行的字节数和尚未执行(压缩)的字节数。 | -tt | 包括在指定日期之前有修改的文件。日期格式(mmddyyyy 或 yyyy-mm-dd)。 | |
-dc | 展示正在执行的文件数和尚未执行(压缩)的文件数。 | -T | 测试 zipfile 的完整性。 | |
-dd | 每10MB展示为一个点。 | -TT cmd | 使用命令 cmd 测试归档。 | |
-dg | 将整个归档用点代表,而不是为每个文件。 | -u | 只更新有改变的文件或新文件。 | |
-ds | 每个点都代表一个 siz ,其中 siz 是以 nm 为单位作为分割(0 代表没有点)。 | -U | 从 zipfile 中选择文件复制(和 --out 一起使用)。等于 --copy。 | |
-D | 不添加目录条目。 | -v | 显示详细执行信息。如果只执行 “zip -v”,则展示版本信息。 | |
-DF | 也写作 --dif。只包括有改变的文件或比输入归档较新的文件。 | -x | 压缩时排除文件。 | |
-e | 设置解压权限,使用标准(弱)PKZip 2.0 编码,提示输入密码。 | -X | 排除额外的文件属性。 | |
-f | 只更新有改变的文件。 | -y | 将软链作为链接保存,而不是作为文件。 | |
-F | 修复 zipfile(-FF 更努力地修复)。拷贝潜在损坏的归档中的文件到新归档中。 -F 尝试正常读取归档并仅复制完整条目,而 -FF 尝试挽救可能导致不完整条目 | -z | 添加 zipfile 的注释。 | |
-FS | 如果日期或大小改变了就更新,系统不存在的文件就删除。 | -Z | 后接压缩方式:store(只保存,等于 -0),deflate(压缩,默认值),如果系统支持 bzip2,可以使用 bzip2 方式。 | |
-i | 压缩时只包括的文件。 | -0 | 只保存,不压缩。 | |
-ic | 大小写不敏感。 | -1~-9 | 1是更快地压缩,9是更好地压缩,默认值是6。 | |
-j | 不压缩目录,只压缩文件。 | -@ | 从标准输入读取文件名。 | |
-J | 删除 zipfile 中的前缀(unzipsfx)。 | -sv | 创建拆分时显示详细信息。 | |
-l | 将 LF 转换为 CR LF (-ll 是将 CR LF 转换为 LF) | -sf | 展示操作的文件后退出(-sf- 日志文件专属)。 | |
-lf path | 打开 path 的文件作为日志文件(覆盖已存在的文件)。 | -sb | 暂停时响铃。 | |
-la | 追加到已存在的日志文件。 | -sp | 在每个拆分操作结束时暂停,来切换磁盘。 | |
-li | 包括 info 信息(默认只有警告和错误信息)。 | -s ssize | 使用大小为 ssize 的拆分文件大小创建拆分存档。 | |
-m | 将文件移动到 zipfile 中,并从系统中删除源文件。 | -R | 递归当前目录中匹配的文件。 | |
-n | 不压缩具有指定后缀的文件。 | -r | 递归目录。 | |
-o | 以压缩文件列表中最新的文件的更新时间为压缩文件的更新时间。 | -q | 不显示执行过程。 | |
–out | 输出到新的归档。如果输入是拆分的,输出将会默认为相同的拆分大小。使用 -s=0 或 -s- 来关闭拆分。如果覆盖旧的拆分归档,但是需要的拆分数量较少, | -P | 使用标准编码,设置密码。 |
通配符
? 匹配任意单个字符。
* 匹配任意个数的字符,包括0(0 到 正无穷)
[list] 匹配 list 中的字符(正则),可以使用范围表示 [ac-f],排除字符 [!bf]
一般情况下,* 会跨越目录级别,比如 'a*b' 可以匹配 'ac/db'。如果使用 -ws,* 不会跨越, **会跨越。
使用示例:
1、压缩file目录
zip -r file.zip file
2、把file.zip解压到file目录里面
unzip file.zip -d file
3、把file文件夹和file.txt压缩成为file.zip
zip -r file.zip file file.txt
4、直接解压到当前位置
unzip file.zip
5、解压adc文件夹下的所有文件
unzip abc\*.zip
6、查看file.zip里面的内容
unzip -v file.zip
7、验证file.zip是否完整
unzip -t file.zip
8、递归当前目录并压缩以 .h 为结尾的文件:
zip zipfile -r . -i "*.h"
9、压缩 path 到 zipfile,排除 pattern:
zip -x pattern pattern @ zipfile path path ...
10、归档更新:
zip zipfile -FS -r dir
11、从 inarchive 复制 pattern 文件到 outarchive:
zip inarchive --copy pattern pattern ... --out outarchive
12、从 old_archive 复制以 .c 结尾的文件(排除foo.c)到 new_archive:
zip old_archive --copy "*.c" --out new_archive -x foo.c
13、修复 bad.zip 为 fixed.zip:
zip -F bad.zip --out fixed.zip
zip bad.zip -FF -v --out fixed.zip
14、递归当前目录,如果有 foofull 中没有的文件或有改变的文件,就压缩到 foonew 中:
zip -r foofull . -DF --out foonew
15、指定目录压缩文件到指定目录下(-j 不压缩目录、-m 移动源压缩文件到zipfile中)
zip -mvj /var/opt/zip/sys_$(date +%Y-%m-%d).zip /var/opt/zip_test/$(date +%Y-%m-%d)/*.csv
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
.cpio
# 解压案例
cpio -idmv < leotest.cpio
-0或--null:接受新增列控制字符,通常配合find指令的“-print0”参数使用;
-a或--rest-access-time:重新设置文件的存取时间;
-A或--append:附加到已存在的备份文档中,且这个备份文档必须存放在磁盘上,而不能放置于磁带机里;
-b或--awap:此参数的效果和同时指定“-ss”参数相同;
-B:将输入/输出的区块大小改成5210Bytes;
-c:使用旧ASCII备份格式;
-C或--io-size=:设置输入/输出的区块大小,单位是Byte;
-d或--make-directories:如有需要cpio会自行建立目录;
-E或--pattern-file=:指定范本文件,其内含有一个或多个范本样式,让cpio解开符合范本条件的文件,格式为每列一个范本样式;
-f或--nonmatching:让cpio解开所有不符合范本条件的文件;
-F或--file=:指定备份档的名称,用来取代标准输入或输出,也能借此通过网络使用另一台主机的保存设备存取备份档;
-H:指定备份时欲使用的文件格式;
-i或--extract:执行copy-in模式,还原备份档;
-l:指定备份档的名称,用来取代标准输入,也能借此通过网络使用另一台主机的保存设备读取备份档;
-k:此参数将忽略不予处理,仅负责解决cpio不同版本间的兼容性问题;
-l或--link:以硬连接的方式取代复制文件,可在copy-pass模式下运用;
-L或--dereference:不建立符号连接,直接复制该连接所指向的原始文件;
-m或preserve-modification-time:不去更改文件的更改时间;
-M或--message=:设置更换保存媒体的信息;
-n或--numeric-uid-gid:使用“-tv”参数列出备份档的内容时,若再加上参数“-n”,则会以用户识别和群组识别码替代拥有者和群组名称列出文件清单;
-o或--create:执行copy-out模式,建立备份档;
-O:指定备份档的名称,用来取代标准输出,也能借此通过网络使用另一台主机的保存设备存放备份档;
-p或--pass-through:执行copy-pass模式,略过备份步骤,直接将文件复制到目的目录;
-r或--rename:当有文件名称需要更改时,采用互动模式;
-R<:>或----owner<:> 在copy-in模式还原备份档,或copy-pass模式复制文件时,可指定这些备份,复制的文件的拥有者与所属群组;
-s或--swap-bytes:交换每队字节的内容;
-S或--swap-halfwords:交换每半个字节的内容;
-t或--list:将输入的内容呈现出来;
-u或--unconditional:置换所有文件,不论日期时间的新旧与否,皆不予询问而直接覆盖;
-v或--verbose:详细显示指令的执行过程;
-V或--dot:执行指令时。在每个文件的执行程序前面加上“.”号;
--block-size=:设置输入/输出的区块大小,假如设置数值为5,则区块大小为2500,若设置成10,则区块大小为5120,以此类推;
--force-local:强制将备份档存放在本地主机;
--help:在线帮助;
--no-absolute-filenames:使用相对路径建立文件名称;
--no-preserve-owner:不保留文件的拥有者,谁解开了备份档,那些文件就归谁所有;
-only-verify-crc:当备份档采用CRC备份格式时,可使用这项参数检查备份档内的每个文件是否正确无误;
--quiet:不显示复制了多少区块;
--sparse:倘若一个文件内含有大量的连续0字节,则将此文件存在稀疏文件;
--version:显示版本信息。