如何在Linux上使用tar命令解压和压缩文件

Linuxtar命令通常用于创建名为.tar.gz或.tgz的存档文件,也称为“压缩包”。
这个命令有很多选项,但你只需要记住几个字母就可以快速创建一个tar归档文件。
tar命令现在可以提取生成的存档。
Linux发行版中包含的GNUtar命令包含集成压缩。
您可以创建.tar存档并使用一个命令使用gzip或bzip2压缩对其进行压缩。
压缩整个目录或单个文件要在Linux上压缩整个目录或文件,请使用以下命令。
tar-czvfname-of-archive.tar.gz/path/to/directory-or-file-c:CreateArchive中指定的文件也将被压缩。
-z:压缩zip存档。
-v:在终端中显示进度时创建存档(也称为“详细”模式)。
V在这些命令中始终是可选的,但我认为它很有用。
-f:允许您指定存档文件名。
一次压缩多个文件目录tar-czvfarchive.tar.gz/home/ubuntu/Downloads/usr/local/stuff/home/ubuntu/Documents/notes.txt压缩有时您可能还想排除目录和文件。
我需要压缩整个目录,但排除某些文件和目录。
为此,请为要排除的每个目录或文件添加--exclude开关。
tar-czvfarchive.tar.gz/home/ubuntu--exclude=/home/ubuntu/Downloads--exclude=/home/ubuntu/.cache使用bzip2压缩,但创建名为.tar的文件最常用gzip压缩。
gz或.tgz文件,tar还支持压缩bzip2。
这允许您创建bzip2压缩文件,通常命名为.tar.bz2、.tar.bz或.tbz文件。
为此,只需在此处的命令中将gzip的-z替换为bzip2的-j即可。
提取tar-cjvfarchive.tar.bz2stuff存档获得存档后,您可以使用tar命令将其解压。
以下命令将archive.tar.gz的内容提取到当前目录。
tar-xzvfarchive.tar.gz

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

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

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

当然,上面的单步操作并不是必要完成,该文件已经存在于压缩包中。

然后看一下这个压缩包中的结构:

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

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

一般来说,比较常用的选项有:主要操作选项:

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

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

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

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

最后添加一些常用选项:

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

保留解压后的文件权限信息(默认仅针对超级用户)

--preserve与相同-p和-s

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

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

-u,--update仅附加比存档中的副本更新的文件

-k,--keep-old-files时不替换现有文件解压arts文件

--keep-newer-files

不要替换比存档中的副本更新的现有文件

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

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

--overwrite-dir

解压时重写现有目录的元数据(默认)

--recursive-unlink清除目录层解压目录之前次

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

-N,--newer=DATE-OR-FILE,--after-date=DATE-OR-FILE只保存早于DATE-OR-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[格式]使用当前数据生成存档名称e

cl将名称转换为小写

cu将名称转换为大写

df归档后删除文件

ed不要添加空目录

dw归档后擦除文件

其他命令和开关请参考帮助手册。

3.zip、解压:

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

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

使用zip和unzip的比较简单,连帮助文档都写得很好,很简单,所以没有什么注释可写。
看看帮助文档就可以了。

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将输出结果发送给more程序处理。

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

-o无需先询问用户,执行unzip后会覆盖原文件。

-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.我下载了一个yasuo.zip文件,想要解压它:

#unzipyasuo.zip

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

#unzipabc/?.zip

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

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

#unzip-vlarge.zip

5.我下载了一个压缩文件large.zip,想验证压缩文件是否已经下载完整

#unzip-tlarge.zip

6.我使用了-v选项,发现music.zip压缩文件中有很多目录和子目录,而子目录其实都是歌曲mp3文件。
我想下载所有这些文件。
进入一级目录,而不是一层层建立目录:

#unzip-jmusic.zip