使用tar命令解压缩/提取文件

tar命令用于将文件和目录打包并压缩为一个tar存档文件。它也可以提取tar存档/压缩包,显示存档/压缩包中包含的文件和目录的列表,将其他文件添加到现有tar存档文件中,以及各种其他类型的操作。
tar支持种类繁多的压缩程序如gzip,bzip2,lzip,lzma,lzop,xz和compress。在创建压缩tar存档时,通常会使用压缩程序的名称作为后缀追加到tar存档文件名的末尾。这是一种公认的惯例,例如创建tar存档时使用了gzip压缩程序,则应将其命名为archive.tar.gz。
Tar最初设计用于创建存档以在磁带上存储文件,这就是为什么它的名字叫Tape ARchive的原因。有两种版本的tar,BSD tar和GNU tar,它们之间存在一些功能差异。大多数Linux系统都默认安装GNU tar。
在本教程中,将说明如何创建/提取/解压缩tar存档/压缩包文件。包括tar命令语法选项,创建tar.gz存档/压缩包,创建tar.bz2存档/压缩包,列出存档/压缩包所有文件/目录,提取/解压tar存档/压缩包,提取tar.gz和tar.bz2存档/压缩包,从tar存档中提取指定文件,从Tar存档中删除文件,添加文件到tar存档。
tar命令语法
在讨论如何使用tar命令之前,先回顾一下基本语法。
tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]OPERATION表示操作,tar命令的操作包括:-c/--create表示创建一个新的tar存档。-x/--extract表示从tar存档文件中中解压整个存档或提取一个或多个文件与目录。-t/--list表示显示tar存档中包含的文件/目录的列表。
OPTIONS表示选项,tar命令的选项包括:--verbose/-v表示打印tar命令正在处理的文件的信息,--file=archive=name/-f archive-name表示指定tar存档的文件名称。ARCHIVE_NAME表示要操作的tar存档的名称。FILE_NAME(s) 表示要提取的文件与目录,多个文件与目录以空格分隔。如果未提供,则解压整个存档。
在执行tar命令时,可以使用tar操作和选项的长短形式。长形式更易读,而短形式更方便。长形式选项以双短划线--开头。短形式选项以单个短划线-为开头,可以省略。
创建tar存档/压缩包
tar命令使用-c选项创建tar存档或和压缩包。例如,创建一个名为archive.tar存档文件,并打包文件file1,file2,file3。你运行以下命令:
tar -cf archive.tar file1 file2 file3以下是使用长形式选项的等效命令:
tar --create --file=archive.tar file1 file2 file3下面的例子将创建一个名为backup.tar的存档,并打包/home/username目录。
tar -cf backup.tar /home/username在创建存档时,您可以打包一个或多个文件/目录。默认情况下,tar命令将递归目录的所有文件并创建存档。如果你指定了--no-recursion选项,tar命令将不会递归目录的所有文件。
如你需要查看tar命令打包过程可使用tar的-v选项,可以查看正在处理的文件/目录。如果你想保留tar命令创建存档整个过程的输出,可以将-v选项的标准输出重定向到文件中,你将运行以下命令:
tar -cfv backup.tar /home/username > tar.logtar命令的日志将写入到当前目录下的tar.log文件中。
创建tar.gz存档/压缩包
gzip是压缩tar文件最流行的压缩算法。使用gzip压缩tar存档时,存档名称应以tar.gz或者以tgz结尾。以下命令将打包文件file1,file2到archive.tar.gz 存档文件/压缩包中,并使用gzip进行压缩:
tar -czf archive.tar.gz file1 file2-z选项告诉tar创建存档文件时使用在gzip压缩程序压缩存档。
创建tar.bz2存档/压缩包
压缩tar文件的另一种流行的程序是bzip2。使用bzip2压缩的存档,应使用tar.bz2或tbz作为文件的扩展名。使用-j选项告诉tar命令使用bzip2程序压缩存档文件。以下命令将打包文件file1,file2到archive.tar.bz2存档文件/压缩包中,并使用bzip2进行压缩:
tar -cjf archive.tar.bz2 file1 file2列出存档/压缩包所有文件/目录
要列出tar存档的所有文件/目录,请使用--list选项,短形式-t。以下命令将列出之前创建的archive.tar存档中的文件/目录:
tar -tf archive.tar输出将如下所示:
file1file2
file3
如果使用--verbose / -v选项列出存档/压缩包的内容,则tar将打印更多信息,例如所有者,文件大小,时间戳等。
tar -tvf archive.tar输出将如下所示:
-rw-r--r-- myfreax/users       0 2018-09-08 01:19 file1-rw-r--r-- myfreax/users       0 2018-09-08 01:19 file2
-rw-r--r-- myfreax/users       0 2018-09-08 01:19 file3
提取/解压tar存档/压缩包
要提取tar存档,请使用--extract/-x选项并指定存档文件名。以下命令将解压/提取archive.tar的文件到当前目录中:
tar -xf archive.tar可使用-v选项打印tar命令执行过程中正在处理的文件名称:
tar -xvf archive.tar默认情况下,tar命令将存档内容提取/解压缩到当前工作目录中。可使用--directory/-C选项指定输出目录,tar命令将文件解压/提取到你指定的目录。例如,要将存档的文件提取到/opt/files目录。您将运行以下命令:
tar -xf archive.tar -C /opt/files提取tar.gz和tar.bz2存档/压缩包
提取/解压缩tar.gz或者tar.bz2存档时,您不必指定解压缩选项。tar命令将根据存档文件的扩展名,使用指定的压缩程序解压/提取存档文件。
例如以下tar命令将自动指定使用的压缩程序,tar.gz将使用gzip压缩程序,tar.bz2将使用bzip2压缩程序。
tar -xf archive.tar.gztar -xf archive.tar.bz2从tar存档中提取指定文件
要从tar存档中提取指定的文件,请在存档名称之后指定要提取的文件名/目录,多个文件/目录使用空格进行分隔。
以下tar命令将从archive.tar存档文件提取file1 ,file2到当前工作目录:
tar -xf archive.tar file1 file2提取文件时,必须提供相其确切的名称,即由使用--list/-t选项调用tar命令时输出的名称。以下命令将从archive.tar存档文件中提取多个目录。即dir1,dir2。
tar -xf archive.tar dir1 dir2如果您尝试提取不存在的文件,将显示类似于以下内容的错误消息:
tar -xf archive.tar READMEtar: README: Not found in archivetar: Exiting with failure status due to previous errors
使用通配符从tar存档中提取文件
要基于通配符模式从存档中提取文件,请使用--wildcards选项并使用单引号转义,以防止shell程序解释它。例如,要提取名称以.js作为扩展命令的Javascript文件,您将运行以下tar命令:
tar -xf archive.tar --wildcards '*.js'添加文件到tar存档
要将文件或目录添加到现有tar存档,请使用--append/-r选项。以下命令将添加名为newfile的文件添加到archive.tar:
tar -rvf archive.tar newfile从Tar存档中删除文件
使用--delete选项从存档中删除文件。例如,在archive.tar 存档文件中删除名为file1的文件。将运行以下命令:
tar --delete -f archive.tar file1结论
到目前为止,您应该很好地了解如何创建和提取/解压缩tar存档文件。想要查看tar命令的更多信息,请参阅Gnu tar文档页面,如有疑问请在下方评论留言。
以上是 使用tar命令解压缩/提取文件 的全部内容, 来源链接: utcz.com/z/506930.html








