Linux文件压缩和解压缩命令使用详解

在Linux系统中,我们经常使用的文件压缩命令有:bunzip2、bzip2、cpio、gunzip、gzip、Split(剪切文件)、zgrep(在压缩文件中查找匹配的正则表达式)、zip、unzip、tar、rar。

最后四个是我用得比较多的,所以我就将这四个写在今天的笔记中。

1.tar:

tar命令:tar[选项...][文件]...

输入“tar-?”help信息,tar的帮助文档给出了以下示例:

示例

tar-cfarchive.tarfoobar#从文件foo和bar中创建一个archive.tar归档文件。

tar-tvfarchive.tar#列出archive.tar存档中所有文件的详细信息。

tar-xfarchive.tar#展开archive.tar存档中的所有文件。

如果要压缩文件夹,请输入:

tar-cvfdirArchive.tar/dirName

同样,您需要将压缩包解压到特定目录中如果是这样,那么它是:

tar-xvfdirArchive.tar/dirName

下面我们来回顾一下。
首先我们手动创建一个目录,并在其中放入一些目录和文件:

首先我们创建一个tar文件并压缩一个目录(testdir):

tar-cftestdir.tartestdir

然后列出压缩包中的结构:

然后我们将文件追加到这个压缩包中:

当然,上面的一步操作不是必要的完成,压缩包中已经存在这个文件了。

然后让我们看看这个存档中的结构:

如果在示例中使用-v选项,则会列出存档中的所有文件属性。
包括权限、创建者、字节大小、修改时间和文件名:

从tar压缩包中提取并显示文件列表:

一般情况下,比较常用的选项有:主要操作选项:

另外练习一下其他一些用法:

1、压缩testdir文件夹时,需要排除该文件夹根路径下的测试文件:

2.仅压缩比指定时间更新的文件:

3.压缩文件名前缀为“te”的所有文件或文件夹(或压缩后缀为“st”的文件)):

最后添加一些常用的选项:

-p,--preserve-permissions,--same-permissions

保留权限信息提取的文件(默认(仅适用于超级用户)

--preserve与-p和-s相同

--same-owner尝试提取时保持所有者关系一致(超级用户默认)

-r,--append将文件附加到存档末尾

-u,--update仅附加比将其复制到存档中更新的文件

-k,--保留旧文件提取文件art时不替换现有文件

--keep-newer-files

不替换比存储库中的副本更新的现有文件

--no-overwrite-dir保留现有文件现有目录的元数据

--overwritee解压时重写现有文件

--overwrite-dir

重写的元数据解压时现有文件夹(默认)

--recursive-unlink在再次解压文件夹之前删除类文件夹

--remove-files将文件添加到存档后删除它们

-N,--newer=日期或文件,--after-date=日期或文件仅保存早于DATE的文件-OUpdatedfilesR-FILE

2.rar:

rarcommand-switch1-switchNarchivefiles...@listfiles...path_to_extract/

Linux系统默认的软件包不包含rar压缩工具,所以我们先安装rar:

sudoapt-getinstallrar

命令选项只能输入给定选项中的一个(且只能输入一个)。
让我们看一下它提供的命令列表:

让我们使用一个示例。
想要压缩文件:

压缩完成后压缩后我们可以通过l命令获取压缩文件中的具体结构信息:

我们甚至可以输出所有通过p命令将压缩文件中的信息发送到控制台:

switchN部分它提供了几个功能选项。

例如,要另外更新存档,您可以使用-ad:

或者,如果您想排除某个文件,您可以使用-x开关(请注意,要排除的字符串是必须后跟x且不带任何其他符号的字符串)。
比如这里我们要排除目录根路径下所有以“te”开头的文件:

还有加密,使用-p开关,类似密码只用p:

如果你解压文件或者直接打开它,会要求你输入密码:

还有一些常用的选项用法是:


ag[格式]使用当前日期生成归档名称

cl将名称转换为大写

cu将名称转换为大写

df删除归档后的内容

ed不添加空目录

dw归档后擦除文件

dw归档后删除文件

其他命令和转换请参考帮助指南。

3.zip、解压:

zip[-options][-bpath][-tmmddyyyy][-nsuffixes][zipfilelist][-xilist

unzip[-Z][-opts[modifiers]]file[.zip][list][-xxlist][-dexdir]

zip和解压缩的使用压缩是比较简单而且帮助文档也很好写得很好,很简单,所以不需要写任何注释。
看看帮助文档就可以了。

linuxzip命令详解

功能描述:压缩文件。

语法:zip[-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b工作目录][-ll][-n后缀字符串][-t日期和时间][-压缩效率][压缩压缩文件][文件...][-i模板样式][-x模板样式]

补充说明:zip是一种广泛使用的压缩程序。
文件被压缩后,它将创建.其他文件具有“.zip”扩展名。

参数:

-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包括系统文件和隐藏文件。

-tDateTime将压缩文件的日期设置为指定日期。

-T检查备份文件中的各个文件是否正确。

-u将较新的文件替换到压缩文件中。

-v显示命令执行情况或显示版本信息。

-V保存VMS操作系统的文件属性。

如果-w文件名中包含版本号,则该参数仅在VMS操作系统中有效。

-x压缩模型时排除符合条件的文件。

-X不保存额外的文件属性。

-y直接保存符号链接而不是链接指向的文件。
该参数仅在UNIX等系统中有效。

-z向压缩文件添加注释。

-$保存第一个压缩文件所在的驱动器名称。

-压缩效率压缩效率是1-9之间的一个值。

linuxunzip命令详解

功能说明:解压zip文件

语法:unzip[-cflptuvz][-agCjLMnoqsVX][-P密码][.zip文件][文件][-d文件夹][-x文件]或unzip[-Z]

附加说明:unzip是解压缩压缩文件程序zip。

参数:

-c将解压结果显示在屏幕上,并转换相应的字符。

-f更新现有文件。

-l显示压缩文件中包含的文件。

-p与-c参数类似,它将在屏幕上显示解压结果,但不会执行任何转换。

-t检查压缩文件是否正确。

-u参数与-f参数类似,但除了更新现有文件外,压缩文件中的其他文件也会解压到该文件夹​​中。

-v显示有关执行的详细信息。

-z仅显示压缩文件的注释文本。

-a对文本文件执行必要的字符转换。

-b不对文本文件执行字符转换。

-C压缩文件中的文件名区分大小写。

-j不处理存档中的根目录路径。

-L将存档中的所有文件名更改为小写。

-M将输出发送给programmore进行处理。

-n解压时不覆盖原文件。

-o无需先询问用户,解压完成后将覆盖原文件考试。

-P密码使用zip密码选项。

-q执行时不显示任何信息。

-s将文件名中的空格字符转换为下划线字符。

-V保留VMS文件版本信息。

-X解压缩时还会恢复文件的原始UID/GID。

[.zip文件]指定.zip压缩文件。

[文件]指定应处理.zip存档中的哪些文件。

-d目录指定解压后文件存放的目录。

-x文件指定不应处理.zip存档中的哪些文件。

-Zunzip-Z相当于执行zipinfo命令

例如:

zip命令可用于将文件压缩到常规zip应用程序中。
形式。
unzip命令用于解压zip文件。

1.我想将文件abc.txt和文件夹dir1压缩到yasuo.zip中:

#zip-ryasuo.zipabc.txtdir1

2.I下载了yasuo.zip文件并想要解压它:

#unzipyasuo.zip

3.我有abc1.zip,当前目录中的abc2.zip和abc3.zip。
我想将它们解压在一起:

#unzipabc/?。
zip

注意:?代表一个字符,*代表任意数量的字符。

4.我有一个很大的压缩文件h3.zip。
我不想解压它,我只想看看里面有什么:

#unzip-vlarge.zip。

5.我下载了一个h3.zip存档,并想验证该存档是否已完全下载

#unzip-tlarge.zip

6.我使用-v选项,发现music.zip压缩包中有很多文件夹和子文件夹,而子文件夹实际上是我要下载的mp3歌曲文件。
所有这些文件都转到第一级文件夹,而不是逐层构建文件夹:

#unzip-jmusic.zip

linux压缩解压gz文件命令

Linux下压缩和解压gz文件常用的命令是gzip和gunzip。

1.压缩文件为gz格式:

使用gzip命令将文件压缩为.gz格式。
语法为:

bash

gzip[file]

例如,要压缩名为example.txt的文件,可以使用以下命令:do:

bash

gzipexample.txt

这会将example.txt文件压缩为example.txt.gz。
gzip命令会直接替换原文件,因此不会对压缩文件进行额外的备份。

2.解压gz格式文件:

使用gunzip命令解压.gz格式文件。
语法为:

bash

gunzip[file]

例如,要解压缩名为example.txt.gz的文件,您可以使用以下命令:可以使用:

bash

ganzipexample.txt.gz

这会将example.txt.gz文件解压到example.txt中。
同样,gunzip命令也会直接替换原来的文件。

3.使用其他工具操作gz文件:

除了gzip和gunzip之外,Linux下还有其他工具可以配合gzip来压缩和解压缩文件。
,例如,使用tar命令结合gzip来压缩和解压缩文件,可以保留原始文件并生成压缩文件,也可以将压缩文件解压以获得原始文件。
具体命令格式如下:

压缩:

bash

tar-czvf[压缩文件名].tar.gz[文件或目录]

解压:

Bash

tar-xzvf[压缩文件名].tar.gz

通过这些命令,用户可以轻松执行可以执行文件压缩和解压缩操作。

请注意,操作前必须对文件和目录拥有正确的读写权限,并谨慎操作,以免造成不必要的数据丢失。

Linux下不同压缩类型的解压和压缩方法

我把收集到的资料都分享出来了,这是我个人的总结,不是抄袭。
转载时请注明PetePie。
(1)xz压缩:使用“xz-z文件”进行压缩,添加参数-k维护文件,添加参数-0到-9调整压缩率。
默认级别为6。
解压:使用“xz-d”解压文件,使用-k参数保留文件。
—————————————————(2)tar.xz压缩:先使用“tarcvfxxx.tarxxx/”,然后执行“xz-zxxx.tar”。
解压:执行“xz-dxxx.tar.xz”和“tarxvfxxx.tar”。
———————————————(3)tar.gz、tar.Z、taz压缩:使用“tarzcvfxxx.tar.gzxxx/”。
解压:执行“tarzxvfxxx.tar.gz”和“ganzipxxx.gz”。
—————————————————(4).bz2解压1:使用“bzip2-dFileName.bz2”解压2:使用“bunzip2FileName.bz2”压缩:使用“bzip2-zFileName.tar.bz2”解压:使用“ta.rjxvfFileName.tar.bz2”或“tar–bzipxvfFileName.tar.bz2”压缩:使用“tarjcvfFileName.tar.bz2DirName”—————————————————(5).bz解压1:使用“bzip2-dFileName.bz”解压2:“bunzip2FileName.bz”压缩:Unknown.tar.bz解压:使用“tarjxvfFileName.tar.bz”—————————————————-(7).zip解压:使用“unzipFileName.zip”压缩:使用“zipFileName.zipDirName”,使用-r参数递归压缩目录,如:$zip-rFileName.zipDirName——————————————————(8).rar解压:使用“rarxFileName.rar”压缩:使用“raraFileName.rarDirName”因为Linuxtar命令不支持批量解压很多网友写了支持批量解压的shell命令:第一:Fortarin*。
.tar.gz;dotarxvf$tar;donefortarin*.tar.bz2;dotarxvf$tar;done第二:ls*.tar.gz|xargs-n1tarxz文件夹中的所有tar.gz使用tar命令批量解压文件vf第三:find-maxdepth1-name"*.bz2"|不,现在我发现这个命令可以做到,老妈xdepth代表搜索深度,1表示只搜索当前目录:foriin$(ls*.tar);dotarxvf$i;done问题:我tar想要批处理文件,但使用tar-xvf时会出现错误。
*.tar,表示“Notfoundinarchive”。
解决办法有很多,比如写脚本。
请问为什么tar不支持这种通配符语法?有什么特别的原因吗?我尝试了gzip,它支持gzip-d*.tar.gz。
答:通配符是shell解决的问题。
例如,tar-xvf*.tar。
实际执行tar时,如果当前目录没有tar内容,tar会得到tar-xvfa.tarb.tarc.tar...。
然后在tar中我收到了参数'*.tar',这与Win不同。
在Linux中,所有字符都可以用作文件名,即它们不存在于目录中。
在*.tar文件中,为了防止*.tar被shell解释为a.tarb.tarc.tar...,可以在使用tar打开压缩包时为其添加单引号就是tar-xvf为选项f必需的,且只能是一个文件,例如myfiles.tar。
myfiles.tar中存储的存档文件是否包含一个或多个成员文件。
如果有多个,可以使用通配符。
别催我,我知道,你也知道这一点。
但是,您的问题是,当您使用tar-xvf*.tar时,如上所述,tar会得到tar-xvfa.tarb.tarc.tar...tar理解您的意图,将b.tarc.tar解析为a.tar。
--------------------------------------------------------------------------------------------------------------------各种各样的以下是不同压缩格式的相似内容的大小比较:

Linux压缩、解压、打包、解包指令

在Linux环境下,我们经常需要对文件进行压缩和解压缩,这主要是通过tar命令来实现的。
tar命令的基本用法包括:

首先,在谈论tar时,它的主要参数“-f”至关重要,因为它代表了指定归档文件的名称。
需要注意的是,该参数必须放在所有其他参数的末尾,并且后面只能跟一个归档文件名,如:tar-czvfarchive_namefile_or_directory。

对于文件压缩,有以下几种常见的操作方式:

使用“czv”组合,例如“tarczvfarchive_namefile_or_directory”,可以创建压缩的tar归档文件(.tar.gz),同时压缩(z)和存档(c)。
只压缩而不换行,可以使用“czf”,如“tarczfarchive_namefile_or_directory”。
解压操作使用“zxvf”,如“tarzxvfarchive_name.tar.gz”,会将tar.gz文件解压到当前目录。

要将特定文件(例如jdk)解压到指定文件夹中,可以执行以下操作:“tar-zxvfarchive_name.tar.gz-C/path/to/destination”,其中“/path/to/destination”应该替换为目标文件夹的路径。

综上所述,tar命令提供了强大而灵活的文件管理功能。
无论是压缩、解压还是打包,只需几个简单的参数组合即可轻松完成。
掌握这些基本操作可以大大提高Linux环境下文件管理的效率。

Linux如何压缩和解压到指定目录

介绍如何使用命令将文件或目录压缩和解压到指定目录。
命令格式:tar-zxvf[压缩包文件名.tar.gz]-C[路径]/说明:将.tar.gz格式解压到指定目录。
例如:tar-zxvfjapan.tar.gz-C/tmp。
/命令格式:tar-jxvf[压缩包文件名.tar。
bz2】-C【路径】/comment:将.tar.bz2格式解压到指定目录。
例如:tar-zxvfjapan.tar.bz2-C/tmp/将.tar.gz格式压缩到指定目录。
格式:tar-zcvf【目录】/【压缩包文件名.tar。
gz][源文件]例如:tar-zcvf/tmp/test.tar.gzjapan/注:要一次压缩多个文件,只需在源文件后面加一个空格,将.tar.bz2格式压缩为指定格式。
目录。
命令格式:tar-jcvf[目录]/[压缩包文件名.tar.gz][源文件]例如:tar-jcvf/tmp/test.tar.bz2japan/注意:要将多个文件压缩到都使用空格在源文件之后。
请注意,必须有一定数量的空格。
每个选项和命令之间的键入,Linux是严格区分大小写的,因此键入时要注意大小写。