3

tar 命令创建/解压文件

 1 year ago
source link: https://www.myfreax.com/how-to-create-and-extract-archives-using-the-tar-command-in-linux/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
tar

tar 命令创建/解压文件

tar命令用于将文件和目录打包并压缩为一个tar存档文件。它也可以提tar压缩文件

Updated At 2 Dec 2022 10 min read
By myfreax
tar 命令创建/解压文件

tar 命令创建/解压文件

tar命令用于将文件和目录打包并压缩为一个tar存档文件。它也可以提tar压缩文件。

显示压缩文件中包含文件与目录,还可以将其他文件添加到现有tar压缩文件中,以及各种其他类型的操作。

tar支持种类繁多的压缩程序如gzipbzip2lziplzmalzopxzcompress

在创建压缩文件时,通常会使用压缩程序的名称作为后缀添加到压缩文件名的末尾。

这是一种公认​​的惯例,例如创建压缩文件时使用gzip压缩程序,压缩文件的名称应该带有.gz后缀。

tar命令最初设计用于创建存档并在磁带存储文件,这就是为什么它的名字叫Tape ARchive的原因。

有两种版本的tar命令,BSD tar和GNU tar,它们之间存在一些功能差异。大多数Linux系统都默认安装GNU tar。

在本教程中,将说明如何使用tar 命令创建或者解压tar文件。还包括tar命令语法选项。

tar 命令

在说明如何使用tar命令之前,先回顾基本语法。tar命令的语法形式是tar [OPERATION_AND_OPTIONS] [ARCHIVE_NAME] [FILE_NAME(s)]

OPERATION也就是操作,tar命令的操作包括,-c/--create创建tar存档文件。

-x/--extract解压存档文件或在存档文件中提取一个或多个文件与目录。-t/--list查看tar存档包含的文件与目录。

OPTIONS选项,tar命令的常用选项包括,--verbose/-v打印tar命令正在处理的文件的信息。

--file=archive=name/-f archive-name指定压缩文件的名称。ARCHIVE_NAME要解压或者压缩的tar存档名称。

FILE_NAME(s)是要提取的一个或者多个文件与目录,多个文件与目录使用空格分隔。如果未提供,则解压整个存档。

在运行tar命令时,可以使用tar操作OPERATION和选项OPERATION的长短形式。长形式更易读,而短形式更方便。

长形式选项以双短划线--开头。短形式选项以单个短划线-为开头,你也可以省略-

tar 命令创建压缩文件

在创建存档时,您可以打包一个或多个文件与目录。要使用tar命令创建存档文件,可以使用tar命令的-c选项。

默认情况下,tar命令递归目录的所有文件并创建存档。如果你指定--no-recursion选项,tar命令将不会递归目录的所有文件。

例如命令tar -cf archive.tar file1 file2 file3创建archive.tar存档文件并打包文件file1file2file3

你也可以使用使用长形式选项的等效命令tar --create --file=archive.tar file1 file2 file3创建archive.tar存档文件。

tar -cf archive.tar file1 file2 file3
tar --create --file=archive.tar file1 file2 file3

如你需要查看tar命令打包过程,可以使用tar命令-v选项。-v选项用于打印正在处理的文件/目录。

如果你想保留tar命令创建存档整个过程,可以将-v选项的标准输出重定向到文件中。

例如命令tar -cfv backup.tar /home/username > tar.logtar命令的日志将写入到当前目录的tar.log文件。

tar -cfv backup.tar /home/username > tar.log

tar 命令添加文件目录

要将文件或目录添加到现有tar压缩文件,请使用tar命令的--append/-r选项。

-r选项允许你指定一个或者多个文件与目录,如果要指定多个文件与目录请使用空格进行分隔。

例如命令tar -rvf archive.tar newfile添加文件newfile到tar文件archive.tar

tar -rvf archive.tar newfile

tar 命令删除文件目录

要从tar压缩文件删除文件与目录,请使用tar命令的--delete选项。

--delete选项允许你指定一个或者多个文件与目录,如果要指定多个文件与目录请使用空格进行分隔。

在删除目录文件与目录时,必须提供文件目录在压缩内文件的内的路径,你可以使用tar命令的--list/-t选项查看文件路径,运行命令tar tf archive.tar

例如命令tar --delete -f archive.tar file1将在archive.tar存档文件删除文件file1

tar tf archive.tar
tar --delete -f archive.tar file1

tar 命令解压tar文件

要解压tar文件,请使用tar命令的--extract或者-x选项,并在-f选项后指定tar文件名称。

命令tar -xf archive.tar将会解压archive.tar文件到当前目录。-f选项用于指定文件,-x选项表示解压。

tar -xf archive.tar

tar 命令查看存档文件目录

要查看tar存档文件与目录,请使用tar命令的--list选项或者短形式的-t选项。

除了查看文件名称,你还可以添加tar命令的--verbose/-v选项打印更详细的信息。

这些文件的信息包括所有者,文件大小,时间戳,权限等。命令tar -tf archive.tar将列出archive.tar存档的文件与目录。

tar -tf archive.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命令的-v选项。这将会在终端打印正在解压的文件名称。

tar默认解压tar文件到当前工作目录,要解压到指定的目录,请使用--directory或者-C选项。

命令tar -xf archive.tar -C /home/myfreax/filesarchive.tar解压到/home/myfreax/files目录。

tar -xvf archive.tar
tar -xf archive.tar -C /home/myfreax/files

tar 命令提取指定文件

要从tar文件中提取指定文件,请在tar命令的最后指定要提取文件名称,多个文件使用空格作为分隔符。

提取文件时,必须提供文件在压缩内文件的内的路径,你可以使用tar命令的--list/-t选项查看文件路径,运行命令tar tf test.tar.xz

除了在tar压缩文件提取文件以外,你还可以提取一个或多个目录。与提取文件一样你需要指定目录在压缩内文件的内的路径。

如果您尝试提取压缩文件内不存在的文件,tar命令将会打印错误消息tar: README: Not found in archive。tar: Exiting with failure status due to previous errors。

例如命令tar -xf archive.tar test/dir/ test/file1将会提取文件test/file1 和目录test/dir/到当前目录。

test/
test/file1
test/dir/
test/dir/file2
archive.tar.xz
tar -tf archive.tar.xz

tar -xf archive.tar.xz test/file1
tar -xf archive.tar.xz test/dir/ test/file1

tar命令的--wildcards选项允许您基于通配符模式或者正则表达式从tar文件中提取多个文件。

在使用通配符模式或者正则表达匹配多个文件时,必须使用单引号对模式进行包裹,避免shell解释模式中的特殊符号。

例如命令tar -xf archive.tar --wildcards '*.png'将会提取以.png结尾的文件。

tar -xf archive.tar --wildcards '*.png'

tar 命令创建tar.xz文件

压缩tar文件的另一个流行的程序是xz。使用xz程序压缩tar文件时,压缩文件名称应以xz结尾。

要创建使用xz压缩程序的创建tar.xz文件。请使用tar命令的-J选项。该选项将会使用xz程序压缩tar存档文件。

例如命令tar cJfv archive.tar.xz file1 file2将会打包文件file1file2到压缩文件archive.tar.xz

tar cJfv archive.tar.xz file1 file2

tar 命令创建tar.gz文件

gzip是压缩最流行的压缩程序之一。使用gzip程序压缩tar文件时,压缩文件名称应以tar.gz或者以tgz结尾。

要创建使用gzip压缩程序的创建tar.gz文件。请使用tar命令的-z选项。该选项将会使用gzip程序压缩tar存档文件。

例如命令tar -czf archive.tar.gz file1 file2将会打包文件file1file2到压缩文件archive.tar.gz

tar -czf archive.tar.gz file1 file2

tar 命令创建tar.bz2文件

压缩tar文件的另一个流行的程序是bzip2。使用bzip2程序压缩tar文件时,压缩文件名称应以bz2结尾。

要创建使用bzip2压缩程序的创建tar.bz2文件。请使用tar命令的-j选项。该选项将会使用bzip2程序压缩tar存档文件。

例如命令tar -cjf archive.tar.bz2 file1 file2将会打包文件file1file2到压缩文件archive.tar.gz

tar -cjf archive.tar.bz2 file1 file2

tar 命令解压tar.xz文件

要解压tar.xz文件,请tar命令的使用--extract或者-x选项,并在-f选项后指定tar.xz文件文件名称。

tar自动检测压缩文件使用的算法并自动解压文件。可以使用tar -xf命令来解压使用其他压缩算法的tar存档文件。例如.tar.gz文件和.tar.bz文件。

命令tar -xf archive.tar.xz命令将会解压archive.tar.xz文件到当前目录。-f选项用于指定文件,-x选项表示解压。

tar -xf archive.tar.xz

tar 命令解压tar.gz文件

要解压tar.gz文件,请tar命令的使用--extract或者-x选项,并在-f选项后指定tar.xz文件文件名称。

tar自动检测压缩文件使用的算法并自动解压文件。可以使用tar -xf命令来解压使用其他压缩算法的tar存档文件。例如.tar.xz文件和.tar.bz文件。

命令tar -xf archive.tar.gz命令将会解压archive.tar.gz文件到当前目录。-f选项用于指定文件,-x选项表示解压。

tar -xf archive.tar.gz

tar 命令解压tar.bz2文件

要解压tar.bz2文件,请tar命令的使用--extract或者-x选项,并在-f选项后指定tar.bz2文件文件名称。

tar自动检测压缩文件使用的算法并自动解压文件。可以使用tar -xf命令来解压使用其他压缩算法的tar存档文件。例如.tar.gz文件和.tar.xz文件。

命令tar -xf archive.tar.bz2命令将会解压archive.tar.bz2文件到当前目录。-f选项用于指定文件,-x选项表示解压。

tar -xf archive.tar.bz2

到目前为止,您应该很好地了解如何创建和提取/解压缩tar存档文件。想要查看tar命令的更多信息,请参阅Gnu tar文档页面,如有疑问请在下方评论留言。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK