Linux下文件的压缩与解压缩
Linux下文件的压缩与解压缩与Windows环境下有较大的区别,在Windows下只需要安装类似Winrar工具就能解压缩大部分文件,而在Linux命令行下每一种文件都有不同的压缩和解压缩方法。
使用tar打包文件
Linux下最常用的打包程序就是tar(注意tar是打包,不是压缩!),使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了。tar命令的选项有很多(用man tar可以查看到) 。
格式:tar [主选项+辅选项] 文件或目录
主选项:它们不可能同时出现,告诉tar要做什么事,是必须要有的
-c:创建新的压缩文件,相当与打包
-x:从压缩文件中释放文件,相当于拆包
-t:列出压缩文件中的内容
辅选项:可选
-C:切换到指定目录
-z:是否同时具有gzip的属性?亦即是否需要用gzip压缩或解压?一般格式为tar.gz或xx.tgz
-j:是否同时具有bzip2的属性?亦即是否需要用bzip2压缩或解压?一般格式为tar.bz2
-v:压缩过程中显示文件
-f:指定压缩文件,注意,在f之后要立即接档名(自己取的),不要再加其他参数
-p:使用原文件的原来属性
-exclude FILE:在压缩过程中,不要将FILE打包
常用命令:
压缩:
tar -cvf 文件或目录名 打包的对象 ——仅打包,不压缩
tar -zcvf 文件或目录名——打包后,以gzip压缩
tar -jcvf 文件或目录名——打包后,以bzip2压缩
查阅:(注意:根据是否为gzip压缩,来选择是否要加上z)
tar -ztvf 文件或目录名 ——查阅压缩文件中有那些文件
解压:
tar -xvf 文件或目录名
tar -zxvf 文件或目录名
示例:
tar -cvf file2.tar /home/user2/file2 #将/home/user2/file2文件打包到当前目录下的tar中,需要注意的是:使用绝对路径标识的源文件,在用tar命令压缩后,文件名连同绝对路径(home/user2/,根目录”/”被自动去掉了)一并被压缩进来,使用tar解压缩后会看到home文件,二并不是file2。
tar -cvf file2.tar -C /home/user2/file2 #使用-C命令,将tar的工作目录从当前目录改为/home/user2,将file2文件(不带绝对路径)压缩到tar中。注意:-C dir的作用在于改变工作目录,其有效期为该命令中下一次-C dir之前。
tar -xvf file2.tar -C /home/user2/file2 #将文件解压到指定目录路径下。
tar除了最基本的打包功能外,还可以在打包或解包的同时调用其他压缩软件,比如gzip、bzip2等。
1) tar调用gzip
gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
tar中使用-z这个参数来调用gzip。
tar -czf all.tar.gz *.jpg #这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为tar.gz
tar -xzf all.tar.gz #这条命令是将上面产生的包解开。
另外,如果遇到.tgz文件,操作方式相同,.tgz是.tar.gz的缩写。
2) tar调用bzip2
bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。 与bzip2相对的解压程序是bunzip2。
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
tar中使用-j这个参数来调用gzip。
tar -cjf all.tar.bz2 *.jpg #这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为tar.bz2
tar -xjf all.tar.bz2 #这条命令是将上面产生的包解开。
非常不常见的.bz文件也使用相同的方式进行解压缩。
3)tar调用compress
compress也是一个压缩程序,目前使用compress的人不如gzip和bzip2的人多。.Z结尾的文件就是bzip2压缩的结果。与 compress相对的解压程序是uncompress。
解压:uncompress FileName.Z
压缩:compress FileName
tar中使用-Z这个参数来调用compress。下面来举例说明一下:
tar -cZf all.tar.Z *.jpg #这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成一个uncompress压缩过的包,包名为all.tar.Z
tar -xZf all.tar.Z #这条命令是将上面产生的包解开
Linux中的zip与unzip
zip命令详解
zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有”.zip”扩展名的压缩文件。
语法:zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件…][-i <范本样式>][-x <范本样式>]
参 数:
-A 调整可执行的自动解压缩文件。
-b<工作目录> 指定暂时存放文件的目录。
-c 替每个被压缩的文件加上注释。
-d 从压缩文件内删除指定的文件。
-D 压缩文件内不建立目录名称。
-f 此参数的效果和指定”-u”参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。
-F 尝试修复已损坏的压缩文件。
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩件。
-h 在线帮助。
-i<范本样式> 只压缩符合条件的文件。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-J 删除压缩文件前面不必要的数据。
-k 使用MS-DOS兼容格式的文件名称。
-l 压缩文件时,把LF字符置换成LF+CR字符。
-ll 压缩文件时,把LF+CR字符置换成LF字符。
-L 显示版权信息。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串> 不压缩具有特定字尾字符串的文件。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-S 包含系统和隐藏文件。
-t<日期时间> 把压缩文件的日期设成指定的日期。
-T 检查备份文件内的每个文件是否正确无误。
-u 更换较新的文件到压缩文件内。
-v 显示指令执行过程或显示版本信息。
-V 保存VMS操作系统的文件属性。
-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
-x<范本样式> 压缩时排除符合条件的文件。
-X 不保存额外的文件属性。
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
-z 替压缩文件加上注释。
-$ 保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率> 压缩效率是一个介于1-9的数值。
unzip 命令详解
unzip为.zip压缩文件的解压缩程序。
语法:unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]
参 数:
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行是时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。
[.zip文件] 指定.zip压缩文件。
[文件] 指定要处理.zip压缩文件中的哪些文件。
-d<目录> 指定文件解压缩后所要存储的目录。
-x<文件> 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令
这么多参数估计已经看晕了,实际过程中并没有那么麻烦,以下样列:
zip -r yasuo.zip abc.txt dir1 #把一个文件txt和一个目录dir1压缩成为yasuo.zip
unzip yasuo.zip #解压文件到当前目录
unzip abc\?.zip #同时解压当前目录下的文件zip,abc2.zip和abc3.zip?表示一个字符,如果用*表示任意多个字符
unzip -v large.zip #仅查看压缩文件zip中的内容,不解压
unzip -t large.zip #验证压缩文件zip的完整性
unzip -j music.zip #把压缩包zip中的文件全部解压到第一级目录,而不要创建与原目录结构一样的多层目录
Linux下rar文件的压缩与解压
.rar是在Windows中最常见的压缩文件格式,在Linux中如需使用需要安装rarlinux,官方:http://www.rarsoft.com/download.htm
wget http://www.rarsoft.com/rar/rarlinux-x64-5.4.0.tar.gzcd rar
make && make install
或者使用RPM安装UNRAR,下载地址:http://pkgs.repoforge.org/unrar/
安装完成后即可使用rar和unrar命令。简单用法:
rar a all *.jpg #该命令是将所有.jpg的文件压缩成一个rar包,名为rar,该程序会将.rar 扩展名将自动附加到包名后。
unrar e all.rar #该命令是将rar中的所有文件解压出来。
$ rar --help 用法: rar <命令> -<选项 1> -<选项 N> <压缩档案> <文件...>
<@文件列表...> <解压缩路径\> <命令>
a 添加文件到压缩档案
c 添加压缩档案注释(注释的大小最大不能超过62000字节)
cf 添加文件备注( 当使用'v'参数时显示文件备注,最大不能超过32767字节)
ch 改变压缩档案参数
cw 向指定文件写入档案备注
d 从档案中删除文件
e 解压缩文件到当前目录(不创建任何子目录)
f 刷新档案中的文件(更新这些文件自它们被打包之后产生的变化,不在压缩档案中增加新的)
i[par]=<str> 在档案中查找特定字符
k 锁定档案(任何试图改变压缩档案中内容的命令都会被忽略)
l[t,b] 列出档案[technical, bare]
m[f] 移动到压缩档案中[只针对文件]
p 打印文件到标准输出
r 修补压缩档案
rc 重建丢失的分卷
rn 重命名压缩档案中的文件
rr[N] 添加数据恢复记录
rv[N] 创建恢复卷
s[name|-] 压缩档案与SFX(自解压文档)之间的转换
t 测试压缩档案文件
u 更新压缩档案中的文件
v[t,b] 列出压缩档案的详细信息[technical,bare]
x 解压缩到完整路径 <选项>
- 停止对选项的扫描
ad 追加档案名称到目标路径
ag[format] 使用当前数据生成压缩档案名
ap<path> 在档案内部设置路径
as 同步档案内目录
av 设置认证检测(只有注册版提供此功能)
av- 关闭认证检测
c- 关闭备注显示
cfg- 关闭读取设置
cl 转换名称为小写字母
cu 转换名称为大写字母
df 压缩后删除原文件
dh 打开共享文件
ds 关闭针对于稳固档案的名称排序
dw 压缩后擦除文件
e[+]<attr> 设置文件排除与包含属性
ed 不添加空目录
en 不设置档案结束块
ep 名称中不包含路径
ep1 名称中不包含基本文件目录
ep3 展开路径到完整包含的驱动器名
f 刷新文件
hp[password] 加密文件数据和文件头部
id[c,d,p,q] 关闭消息
ierr 发送所有消息到标准错误输出
ilog[name] 记录错误日志到文件中(只有注册版提供此功能)
inul 关闭所有消息
isnd 打开声音
k 锁定压缩档案
kb 保持被解压过的已损坏的文件
m<0..5> 设置压缩等级(0-存储...3-默认...5-最大)
mc<par> 设置高级压缩参数
md<size> Dictionary size in KB (64,128,256,512,1024,2048,4096 or A-G)
ms[ext;ext] 存储指定的文件类型
n<file> 仅包含指定的文件
n@ 从标准输入读取文件名到包含内容中
n@<list> 在指定列表文件中包含文件
o[+|-] 设置重写模式
ol 替文件保存符号连接作为连接
or 自动重命名文件
ow 保存活存储文件的拥有者与群组
p[password] 设置密码
p- 不询问密码
r 对子目录进行递归操作
r0 仅用通配符名称对子目录进行递归操作
rr[N] 添加数据恢复记录
rv[N] 创建恢复
s[<N>,v[-],e] 创建稳固档案压缩
s- 关闭稳固档案压缩
sc<chr>[obj] 设置指定的字符串
sfx[name] 创建SFX档案
si[name] 从标准输入读取数据
sl<size> 处理文件的大小小于指定的值
sm<size> 处理文件的大小大于指定的值
t 压缩后测试文件
ta<date> 处理修改日期为指定日期之后的文件,<date>格式: YYYYMMDDHHMMSS
tb<date> 处理修改日期为指定日期之前的文件,<date>格式: YYYYMMDDHHMMSS
tk 保持档案最初的时间
tl 设置档案时间为据现在最近的文件时间
tn<time> 处理比指定时间新的文件
to<time> 处理比指定时间旧的文件
ts<m,c,a>[N] 保存或存储文件时间(修改,创建,访问)
u 更新文件
v 创建自动大小的卷或列出所有卷
v<size>[k,b] 创建指定大小的卷size=<size>*1000 [*1024, *1]
ver[n] 文件版本控制
vn 使用旧的卷命名体系
vp 在每个卷之前暂停
w<path> 指定工作目录
x<file> 排除指定文件
x@ 排除从标准输入中读取的文件名称
x@<list> 从指定列表文件中指定要排除的文件
y 设定所有回答为yes
z[file] 从文件中读取压缩档案的备注
注意:rar的<命令>部分不带”-“号,只有<选项>部分带”-“号,这一点注意一下。
例1:添加文件或目录到压缩档案中,使用a命令。例如把文件files1添加到abc.rar中,使用a或m命令,a命令把file1文件添加到abc.rar档案中保持原有的file1文件不变,m命令移动file1文件到file1.rar档案中(压缩完成后会删除原有的file1文件,注意:m命令只针对文件进行操作)
rar a abc.rar file1
注意:如果只输入”rar a file1.rar”命令,而没有接文件名或目录名的话,会将当前目录下所有的文件和文件夹压缩进file1.rar文档中。这点要注意一下。说明:如果此时abc.rar档案不存在,会自行创建abc.rar文档案,如果abc.rar档案已经存在,则将file1文件压缩进abc.rar档案中,若abc.rar档案中已存在一个file1文件,则会更新file1文件。并且原有的file1文件依然存在于当前目录下,若要将file1文件移动到file1.rar中请使用m命令,对于目录同样可以进行此操作。
例2:解压缩abc.rar档案中的内容,可以使用e或x命令,假设abc.rar目录中有一个名为file1的文件和一个名为test的目录,test目录中有一个名为file2的文件,
rar e abc.rar
说明:使用e命令,会将abc.rar中的file1文件连同test目录下的file2文件解压到当前目录。如果想保持abc.rar目录中的目录结构请使用x命令。
rar x abc.rar
说明:此时会将file1文件和test目录解压到当前文件夹。
例3:为整个压缩文件添加注释
rar c abc.rar
说明:输入该命令后,屏幕最下方会显示
Processing archive test.
rarReading comment from stdin
并有一个光标在闪烁,从光标闪烁的位置输入注释信息,输入完了按下Ctrl+D结束输入
例4:为压缩文件中的单个文件添加注释,使用cf命令。假如现在要为abc.rar档案中的file1文件添加注释
rar ch abc.rar file1
此时屏幕最下方会显示
Reading comment for abc.rar : file1 from stdin
从光标闪烁出输入想要为file1添加的注释,Ctrl+D结束输入
例5:把整个档案的注释写入到一个文件中,使用cw命令。加入要将abc.rar的注释写入到test.txt文件中
rar cw abc.rar test.txt
说明:如果当前目录下不存在名为test.txt的文件,则会自行创建一个名为test.tx的文件,并将abc.rar的注释写入到text.txt文件中,如果当前目录中已经存在一个名为text.txt的文件,则会提示你是否覆盖已经存在的文件,如果选择Yes或者All,
则会清空test.txt中原有的内容,然后将abc.rar的注释内容写入到text.txt文件中。
例6:删除压缩档案中的文件或目录,使用d命令。例如要删除abc.rar档案中的file1文件。
rar d abc.rar file1
说明:该命令删除abc.rar档案中的file1文件,对于目录同样有效。
以上为常用的压缩与解压缩命令,<选项>部分的使用不再进行介绍了,请大家自己尝试一下吧。
解压缩命令unrar的使用:
$unrar --help 用法: unrar <command> -<switch 1> -<switch N> <archive> <files...>
<@listfiles...> <path_to_extract\> <命令>
e 解压文件到当前目录
l[t,b] 列出压缩文档信息[technical, bare]
p 打印文件到标准输出
t 测试压缩我俄当
v[t,b] 列出压缩文档的详细信息[technical,bare]
x 解压文件到完整路径
以下为<选项>部分,略去。
unrar的命令和rar具有同样的效果,可以看出unrar只包含了rar的一部分命令而已,因此使用rar就可以完成所有操作。
7z文件在Linux上的解压缩
个人在windows上比较喜欢安装7-zip,压缩的时候也常常使用.7z的格式。要解压缩.7z文件,首先需要安装7zip软件。
yum install p7zip
使用7zip的命令是7za。
安装完成后的使用方法:7za {a|d|l|e|u|x} 压缩包文件名 {文件列表或目录,可选}
a 向压缩包里添加文件或创建压缩包,如向7z添加001.jpg,执行:7za a 001.7z 001.jpg;将001目录打包执行:7za a 001.7z 001;
d 从压缩里删除文件,如将7z里的001.jpg删除,执行:7za d 001.7z 001.jpg
l 列出压缩包里的文件,如列出7z里的文件,执行:7za l 001.7z
e 解压到当前目录,目录结构会被破坏,如rar内有如下目录及文件123/456/789.html,
执行:7za e 001.rar,目录123和456及文件html都会存放在当前目录下。
x 以完整路径解压。
实例:
7za a vps12.7z /www #打包根目录下www目录的文件
7za x vps12.7z -o/home/www #解压,-o表示输出目录,注意其与目录路径之间没有空格
Linux下文件的压缩与解压缩相关推荐
- Linux下文件的压缩、解压缩、打包以及提取
文章目录 Linux下文件的压缩.解压缩.打包以及提取 一.单个文件的解压缩 1.压缩文件: 2.文件的压缩 3.压缩文件的查看: 4.文件的解压:gunzip [选项] 文件名 二.多个文件的打包和 ...
- linux下文件的压缩和解压缩
linux下文件的压缩和解压缩 目录 1.压缩 2.解压缩 3.归档工具 一. 压缩 compress: -d:解压缩,相当于uncompres-c:结果输出至标准输出,不删除原文件-v:显示详情 - ...
- linux中的文件夹压缩文件,linux将文件拷贝到目录下Linux下文件的压缩与打包详解...
在Linux中,有很多的压缩命令.利用这些压缩命令,可以方便的从网络上下载大型的文件.同时,我们知道,Linux文件的扩展名是没有特殊意义的,不过,因为Linux下存在着许多压缩命令,所以为了方便记忆 ...
- linux 备份并压缩文件,Linux下文件的压缩和备份.doc
Linux下文件的压缩和备份 Linux下文件的压缩和备份文/ heiyeluren 文件的备份和压缩是管理员遇到的首要问题,我刚学Linux,总结一下书上和网络上的方法.(本文章基于Redhat9) ...
- Linux下文件的打包、解压缩指令——tar,gzip,bzip2,unzip,rar
本文是笔者对鸟叔的Linux私房菜(基础学习篇) 第三版(中文网站)中关于 Linux 环境下打包和解压缩指令的内容以及日常操作过程中所接触的相关指令的总结和记录,以供备忘和分享.更多详细信息可直接参 ...
- Linux下文件的压缩和解压
文件的压缩和解压 Gzip格式的: tar -czvf 要存的名字.tar.gz 要打包的东西或目录 bzip2格式的: tar -cjvf 要存的名字.tar.bz ...
- linux带密码解压密码,linux 下文件加密压缩和解压的方法
方法一:用tar命令 对文件加密压缩和解压 压缩: [html] view plain copy tar -zcf - filename |openssl des3 -salt -k password ...
- linux 下文件加密压缩和解压的方法
方法一:用tar命令 对文件加密压缩和解压 压缩: tar -zcf - filename |openssl des3 -salt -k password | dd of=filename.des3 ...
- 【Linux】文件的压缩与解压缩
1. 把/etc/services文件复制到/home目录下,并重命名为test,把目录/etc/yum复制到/home目录下 2. 使用gzip对/home/test进行压缩,并用命令ls -l 显 ...
最新文章
- JVM 配置常用参数
- ffmpeg基本用法(转)
- android sqlitejian监听,tencent/sqlite.md · zhoujian/AndroidInterView - Gitee.com
- spring 整合mongodb报NoSuchMethodError错误
- python 时间差模块_python利用datetime模块计算时间差
- 计算机组成与系统结构名词解释,北京邮电大学 计算机系统结构(体系结构) 期末复习 术语解释...
- 【Verilog HDL学习之路】第一章 Verilog HDL 数字设计总论
- 【总结记录】面向对象设计OOP三大特性(封装、继承、多态)、七大基本原则的理解(结合代码、现实实例理解)
- 解决 idea Method threw ‘java.lang.NoClassDefFoundError‘ exception. Cannot evaluate xxx toString 问题
- 【C#学习笔记】单精度和双精度浮点型操作留意。
- java rpc 框架 常用_常用的RPC架构系列---gRPC
- html中什么字体的英文好看,英语字体有哪些?英语哪种字体最好看
- 带你玩转软件项目测试管理——项目研发管理模式(一)
- 今日头条 ANR 优化实践系列 - Barrier 导致主线程假死
- 一个高速公路交警的救命忠告
- WeixinJSBridge.call 不被支持,请参考 http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 进行
- 职业生涯规划需要考虑的三大要点
- 计算机硬盘做u盘启动不了,u盘启动盘读不出来硬盘如何解决_电脑U盘启动找不到硬盘的解决教程...
- 2022-2028全球与中国实验室烧结炉市场现状及未来发展趋势
- LDPC的密度进化 density evolution
热门文章
- Tomcat部署启动时发生错误报错:无法启动组件
- 今天写出一个十分弱智的 bug!
- 全球与中国铂金坩埚市场发展现状与趋势研究分析报告2022-2028年
- 嵌入式软考备考_6 嵌入式程序设计
- DSLR-Quality Photos on Mobile Devices with Deep Convolutional Networks具有深度卷积网络的移动设备上的 DSLR 质量照片
- Loadrunner-Pacing步长
- 苹果电脑如何把Windows系统安装到U盘?
- U盘安装Centos 8
- php 5.3 加密,php – 将加密密钥从Laravel 5.2迁移到5.3
- html中固定table的首行和首列