
Linux tar 命令创建/解压文件
tar命令用于将文件和目录打包并压缩为一个tar存档文件。它也可以提tar压缩文件
tar命令用于将文件和目录打包并压缩为一个tar存档文件。它也可以解压文件。
显示压缩文件中包含文件与目录,还可以将其他文件添加到现有tar压缩文件中,以及各种其他类型的操作。
tar支持种类繁多的压缩程序如gzip,bzip2,lzip,lzma,lzop,xz和compress。
在创建压缩文件时,通常会使用压缩程序的名称作为后缀添加到压缩文件名的末尾。
这是一种公认的惯例,例如创建压缩文件时使用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存档文件并打包文件file1,file2,file3。
你也可以使用使用长形式选项的等效命令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.log将tar命令的日志将写入到当前目录的tar.log文件。
tar -cfv backup.tar /home/username > tar.logtar 命令添加文件目录
要将文件或目录添加到现有tar压缩文件,请使用tar命令的--append/-r选项。
-r选项允许你指定一个或者多个文件与目录,如果要指定多个文件与目录请使用空格进行分隔。
例如命令tar -rvf archive.tar newfile添加文件newfile到tar文件archive.tar。
tar -rvf archive.tar newfiletar 命令删除文件目录
要从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 file1tar 命令解压tar文件
要解压tar文件,请使用tar命令的--extract或者-x选项,并在-f选项后指定tar文件名称。
命令tar -xf archive.tar将会解压archive.tar文件到当前目录。-f选项用于指定文件,-x选项表示解压。
tar -xf archive.tartar 命令查看存档文件目录
要查看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 file3tar 命令指定解压目录
要获得更详细的输出,请使用tar命令的-v选项。这将会在终端打印正在解压的文件名称。
tar默认解压tar文件到当前工作目录,要解压到指定的目录,请使用--directory或者-C选项。
命令tar -xf archive.tar -C /home/myfreax/files将archive.tar解压到/home/myfreax/files目录。
tar -xvf archive.tar
tar -xf archive.tar -C /home/myfreax/filestar 命令提取指定文件
要从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/file2tar -tf archive.tar.xz
tar -xf archive.tar.xz test/file1
tar -xf archive.tar.xz test/dir/ test/file1tar命令的--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将会打包文件file1,file2到压缩文件archive.tar.xz。
tar cJfv archive.tar.xz file1 file2tar 命令创建tar.gz文件
gzip是压缩最流行的压缩程序之一。使用gzip程序压缩tar文件时,压缩文件名称应以tar.gz或者以tgz结尾。
要创建使用gzip压缩程序的创建tar.gz文件。请使用tar命令的-z选项。该选项将会使用gzip程序压缩tar存档文件。
例如命令tar -czf archive.tar.gz file1 file2将会打包文件file1,file2到压缩文件archive.tar.gz。
tar -czf archive.tar.gz file1 file2tar 命令创建tar.bz2文件
压缩tar文件的另一个流行的程序是bzip2。使用bzip2程序压缩tar文件时,压缩文件名称应以bz2结尾。
要创建使用bzip2压缩程序的创建tar.bz2文件。请使用tar命令的-j选项。该选项将会使用bzip2程序压缩tar存档文件。
例如命令tar -cjf archive.tar.bz2 file1 file2将会打包文件file1,file2到压缩文件archive.tar.gz。
tar -cjf archive.tar.bz2 file1 file2tar 命令解压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.xztar 命令解压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.gztar 命令解压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文档页面,如有疑问请在下方评论留言。















