Linux文件压缩和解压缩命令使用详解
在Linux系统上,我们通常使用的文件压缩命令有:bunzip2、bzip2、cpio、gunzip、gzip、split(剪切文件)、zgrep(搜索压缩文件中匹配的正则表达式)、zip、unzip、tar、.rar。
最后四个是我最常用的,所以我将这四个写在今天的笔记中。
1.tar:
tar命令:tar[选项 ][文件]
输入“tar-?”帮助信息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
然后将结构插入到zip包中:
然后我们将文件追加到这个zip包中:
当然,上面提到的一步过程没有必要这样做,该文件已经存在于压缩包中。
然后看一下这个zip包的结构:
如果在示例中使用-v选项,则所有文件属性都将包含在zip包中。
包括权限、创建者、字节大小、修改时间和文件名:
从tarzip文件中提取并查看文件列表:
一般来说,最常用的选项是:主要启动选项:
另外练习一下其他一些用法:1、压缩testdir目录时,需要排除该文件夹根路径下的测试文件:
2.仅压缩比指定时间更新的文件:
3、压缩所有文件名前缀为“te”的文件或文件夹(或压缩后缀为“st”的文件):
最后添加一些常用选项:
-p,--pre serve-permissions,--same-permissions
保留zip文件权限信息(默认仅适用于高级用户)
--pre serve与-p和-s相同
--同一所有者保留尝试解压缩时所有者关系一致性(超级用户默认)-r,-append将文件附加到存档末尾
-u,-update仅附加更重要的文件最近复制到存档中
-k,--keep-old-files解压文件时不覆盖现有文件
--keep-newer-files
不要覆盖文件比存档中的副本更新
--no-overwrite-dir保留现有目录的现有文件元数据
--overwrite解压缩时重写现有文件
--overwrite-dir
解压时重写现有目录元数据(默认)
--recursive-unlink解压目录次之前清除目录层
--remove-files之后删除文件将它们添加到存档
-N,--newer=DATE-OR-FILE,--after-date=DATE-OR-FILE仅保存早于DATE的文件-O更新的R-FILE文件
2.rar:
rarcommand-switch1-switchNarchivefiles @listfiles path_to_extract/
默认软件包对于Linux,它没有rar压缩工具,所以我们先安装rar:
sudoapt-getinstallrar
命令选项只能输入给定选项中的一个(且只有一个)我们看一下它提供的命令列表:
使用示例我要做文件压缩:
压缩完成后我们可以得到文件中的具体结构信息。
通过l命令查看压缩文件:
我们还可以将zip文件中的所有信息输出到控制台通过p命令:
SwitchN部分提供了一些功能选项。
例如,要以附加方式更新zip文件,可以使用-ad:
或者,如果要排除特定文件,可以使用-x开关(注意,要排除的字符串是并且必须紧跟在x后面,而不添加任何符号)。
比如这里我们要排除文件夹根路径下所有以“te”开头的文件:
还有加密,使用密钥-p,同样,密码跟在p后面:
如果解压相关文件或直接打开文件,会要求您输入密码:
此外,一些常用的选项有:
ag[格式]使用当前日期创建存档名称
clConvertnamestouppercase
cuConvertnamestouppercase
df归档后删除文件
edDonotademptydirectories
dw归档后擦除文件
对于其他命令和开关请参阅帮助指南。
3.压缩、解压缩:
zip[-options][-bpath][-tmmddyyyy][-nsuffixes][zipfilelist][-xilist]
解压[-Z][-opts[修饰符]]文件[.zip][list][-xxlist][-dexdir]
使用zip是解压比较简单,连帮助文档都写得很好,就不用写注释了,直接看帮助文档即可。
linuxzip命令详解
功能描述:压缩文件。
语法:zip[-AcdDfFghjJKlLmoqrSTuvVwXyz$][-工作目录b][-ll][-后缀字符串n][-t日期和时间][-压缩效率][压缩]zip文件][文件 ][-模板样式i][-模板样式x]
附加说明:Zip是一种广泛使用的压缩软件,压缩文件后,会生成附加文件“.zip”扩展名。
参数:
-A设置自动解压可执行文件。
-b工作目录指定文件临时存放的目录。
-c向每个zip文件添加注释。
-d从压缩文件中删除指定文件。
-D不在压缩文件中创建目录名。
-f该参数的效果与指定“-u”参数的效果类似,但它不仅更新现有文件,还会添加一些原本不存在于压缩包中的文件使用此参数还将它们添加到zip文件中。
-F尝试修复损坏的zip文件。
-g压缩文件并将其附加到现有zip文件,而不是创建新的zip文件。
-h在线帮助。
-i模板模式只压缩符合条件的文件。
-j只保存文件名和,不保存任何目录名。
-J删除压缩文件前面不必要的数据。
-k使用MS-DOS兼容格式的文件名。
-l压缩文件时,将LF字符替换为LF+CR字符。
-ll压缩文件时,将LF+CR字符替换为LF字符。
-L显示版权信息。
-m压缩文件并将其添加到压缩文件中,然后删除原始文件,即将文件移动到压缩文件中。
-n后缀字符串不压缩指定后缀字符串的文件。
-o根据zip文件中哪个文件有最后更改时间,将zip文件的更改时间设置为与文件时间相同。
-q不显示指令执行过程。
-r递归处理指定目录下的所有文件和子目录。
-S包括系统文件和隐藏文件。
-tDateTime将压缩文件的日期设置为指定日期。
-T检查备份文件中的每个文件是否正确。
-u替换zip文件中的较新文件。
-v显示指令执行过程或显示版本信息。
-V保存VMS操作系统的文件属性。
如果-w文件名中包含版本号,则该参数仅在VMS操作系统下有效。
-x压缩模板样式时排除符合条件的文件。
-X不保存附加文件属性。
-y直接保存符号链接而不是链接指向的文件。
该参数仅在类UNIX系统中有效。
-z添加注释压缩文件。
-$保存第一个压缩文件所在磁盘的卷名。
-压力效率压力效率的值范围为1-9。
linuxunzip命令详细解释
功能说明:解压压缩文件
语法:unzip[-cflptuvz][-agCjLMnoqsVX][-密码P][.zip文件][文件][-d目录][-x文件]或解压缩[-Z]
补充说明:Decompre ss是一个解压缩压缩的.zip文件的程序。
参数:
-c将解压结果显示在屏幕上,并进行适当的字符转换。
-f更新现有文件。
-l显示压缩文件中包含的文件。
-p与-c参数类似,会将解压结果显示在屏幕上,但不进行任何转换。
-t检查压缩文件是否正确。
-u参数与-f参数类似,但除了更新现有文件外,zip文件中的其他文件也会解压到目录中。
-v执行时显示详细信息。
-z仅显示zip文件的注释文本。
-a对文本文件中的字符执行必要的转换。
-b不对文本文件执行字符转换。
-C压缩文件中的文件名区分大小写。
-j不处理压缩文件中的原始目录路径。
-L将压缩文件中的所有文件名更改为小写。
-M将输出结果发送到进一步的程序进行处理。
-n解压时不覆盖原文件。
-o无需先询问用户,解压后将覆盖原文件。
-P密码使用压缩密码选项。
-q执行时不显示任何信息。
-s将文件名中的空格字符转换为下划线字符。
-V维护VMS文件版本信息。
-X解压缩时还会恢复文件的原始UID/GID。
[.zip文件]指定压缩的.zip文件。
[文件]指定.zip文件中要处理的文件。
目录-d指定解压后文件存放的目录。
-x文件指定不应处理.zip文件中的哪些文件。
-Zunzip-Z相当于执行zipinfo命令
示例:
zip命令可用于将文件压缩为常用的zip文件。
模型。
unzip命令用于解压压缩文件。
1.我想将abc.txt文件和dir1目录压缩到yasuo.zip中:
#zip-ryasuo.zipabc.txtdir1
2.我已经下载了yasuo.zip文件,我想解压它:
#unzipyasuo.zip
3.我有abc1.zipabc2.zip和abc3.zip位于当前目录中,我想将它们一起解压缩:
#unzipabc/?。
zip
注:代表?一个字符,*代表任意数量的字符。
4.我有一个大zip文件Large.zip,但我不想解压它,我只想查看其:
#unzip-vlarge.zip。
5.我下载了Large.zipzip文件,我想检查该zip文件是否已完全下载
#unzip-tlarge.zip
6.我使用-v选项,发现music.zip文件中有很多目录和子目录,而子目录实际上是我要下载的mp3歌曲文件,转到一级目录而不是创建层。
逐层目录:
#unzip-jmusic.zip
linux下tar压缩命令,如果压缩一个指定的目录,解压后会有这个目录存在,现在我要想解压后不要这个目录
在Linux中使用tar命令压缩文件或目录时,如果直接使用tarzcvfaa.tgz/a,则/a目录及其将被压缩成压缩包。解压后还会出现/a目录。
如果解压后不想保留这个目录结构,可以使用-C选项,即--directoryDIR参数。
具体来说,你可以这样做:tarzcvfaa.tgz-C//a。
这里的-C选项会将工作目录更改为/a,这样压缩时就不会包含/a目录本身的级别。
例如,假设您有一个名为myproject的文件夹,并且您只想压缩其中的而不包括myproject本身。
您可以执行以下操作:1.首先,进入myproject目录:cdmyproject2.使用tar命令压缩,而不压缩myproject目录本身:tarzcvfmyproject_content.tgz。
这里,”。
”代表当前目录。
压缩后,解压后的文件夹结构将不包含myproject目录。
同样,使用-C选项也可以达到同样的效果,例如:tarzcvfmyproject_content.tgz-C/。
综上所述,在使用tar命令时,通过指定-C选项,可以控制压缩包中的目录级别,避免解压。
之后保留不必要的目录结构。
如何在Linux上使用tar命令解压和压缩文件
在Linux系统中,使用tar命令来压缩和解压缩文件非常方便。
例如,将根目录下的bbs.tar.zip文件解压到/zzz/bbs目录下,命令为:
#tarzxvf/bbs.tar.zip-C/zzz/bbs
该操作要求/zzz/bbs目录已经存在,即使该目录不存在,cp命令也会自动创建。
此外,tar命令还可以用于文件打包。
例如将当前目录下的zzz文件打包到根目录下,命名为zzz.tar.gz:
#tarzcvf/zzz.tar.gz./zzz
这里-z选项用于使用gzip压缩,-c表示创建新包,-v表示显示进程,-f表示指定包名。
tar命令的解压命令格式如下:
-c:创建压缩包
-x:解压缩
-t:查看
-r:将文件追加到压缩包文件末尾
-u:更新原压缩包中的文件
这五个选项是独立的。
压缩或解压时只能选择其中之一。
例如:
#tar-czfall.tar.gz*.jpg
该命令将所有.jpg文件打包为all.tar.gz文件。
-c表示创建新包,-z表示使用gzip压缩,-f表示指定包名。
#tar-xvfall.tar
该命令将解压all.tar包中的所有文件。
针对不同的压缩格式,tar命令提供了相应的选项:
-z:gzip压缩-j:bzip2压缩-Z:compre ss压缩例如:
#tar-cjfjpg.tar.bz2*.jpg
此命令将所有.jpg文件打包为jpg.tar.bz2文件,并使用bzip2压缩。
对于rar和zip格式的压缩和解压缩,可以使用unrar和unzip命令:
#unrarefile.rar
此命令解压缩rar文件。
#unzipfile.zip
此命令解压缩zip文件。
总之,tar命令提供了丰富的函数来处理文件压缩和解压缩,适用于多种常见的压缩格式。