当前位置: 首页 > Linux

LinuxTips:介绍tar命令打包、压缩、加解密的用法

时间:2023-04-07 01:11:19 Linux

在Linux中,可以使用tar命令将多个文件和目录打包成一个指定的归档文件。需要注意的是,tar命令默认只是将多个文件打包在一起,并没有对文件进行压缩,所以打包后的文件大小不会变小。由于在tar格式中加入了一些文件信息,甚至可能会变大。如果要在tar命令中进行压缩或解压操作,需要提供相应的选项参数。稍后将详细解释。有关tar命令的格式,请参阅mantar。tar命令的格式解释如下:tar[-]A--catenate--concatenate|c——创建|d--diff--compare|--删除|r--追加|t--列表|--测试标签|你--更新|x--extract--get[options][pathname...]Tar从磁带或磁盘存档中存储和提取文件。功能字母不需要以“-”为前缀,并且可以与其他单字母选项结合使用。长函数名必须以--为前缀。一些选项接受一个参数;对于单字母形式,这些必须作为单独的参数给出。对于长格式,可以通过将=value附加到选项来给出它们。也就是说,tar命令可以在磁带或磁盘上创建和提取档案。Acdrtux这些选项可以在选项前面没有连字符-的情况下提供。当其他选项与这些功能选项一起写时,-字符也可以省略。如果单独提供其他选项,它们需要以-开头。常用的功能选项说明如下:-c,--create创建一个新的存档。即指定新建一个归档文件,而不是从归档文件中提取文件。-r,--append将文件附加到存档的末尾。即,将新文件追加到现有存档文件中。-t,--list列出存档的内容。即不解压归档文件,可以列出归档文件中打包后的文件信息-u,--updateonlyappendfilesnewerthancopyinarchive即当本地文件比文件中的文件新时archive,将本地文件打包到archive中。此选项不会更新压缩存档。-x,--extract,--get从存档中提取文件。也就是说,从存档中提取文件。在这些功能选项中,不包括压缩和解压缩选项。一般来说,这些功能选项将与以下选项一起使用:-f,--fileARCHIVE使用归档文件或设备ARCHIVE。也就是说,-f选项应该提供一个参数来指定归档文件的名称。如果未指定此选项,tar命令通常会将内容写入标准输出。-v,--verbose详细列出已处理的文件。即打印操作过程的详细信息。常用于查看提取的文件信息。一些用法示例如下:创建一个存档$tarcjava/hello.c-farchive.tar$lsarchive.tarjavahello.c在tarcjava/hello.c-farchive.tar命令中,cjava/hello.c指定打包java/目录和hello.c文件。-farchive.tar指定打包生成的归档文件名为archive.tar。执行tar命令后,使用ls命令可以看到生成了archive.tar文件。列出archive文件中的文件信息$tartfarchive.tarjava/java/Service.javahello.c可以看到刚才生成的archive.tar里面有一个java/目录和一个hello.c文件在java/目录里面是一个Service.java文件。从压缩包中提取文件$tarxfarchive.tar$tarxvfarchive.tarjava/java/Service.javahello.c可以看到tarxvfarchive.tar命令将archive.tar压缩包中的文件提取到本地,使用-v选项列出提取的文件信息。tarxfarchive.tar命令只是将文件解压到本地,并没有列出解压后的文件信息。指定压缩和解压由于tar命令默认只打包不压缩,所以打包后的文件大小不会变小。如果打包时要压缩,需要指定其他选项。如果要解压,还需要指定相应的选项。以下选项用于指定使用哪种压缩工具,指定的压缩工具可以用于压缩或解压。-j,--bzip2使用bzip2命令压缩或解压-z,--gzip,--gunzip--ungzip使用gzip命令压缩或解压-Z,--compress,--uncompress使用compress命令压缩或解压-a,--auto-compress使用存档后缀来确定压缩程序。即根据归档文件的后缀自动选择压缩命令。例如,使用gzip命令压缩.gz扩展名。注意:这些选项是用来指定使用什么压缩工具进行压缩或解压的,这些选项只是指定压缩工具。具体可以通过-c选项和-x选项指定压缩或解压。当这些选项与打包档案的选项一起使用时,将执行压缩。当这些选项与提取存档的选项一起使用时,将完成解压缩。指定的压缩工具是一个单独的命令,需要安装在系统中才能正常使用。使用tar进行压缩的命令以下是使用tar进行压缩的一些命令。使用gzip压缩tarczfarchive.tar.gzjava/hello.c在tarczfarchive.tar.gzjava/hello.c命令中,-z选项指定使用gzip命令进行操作。-c选项指定创建归档文件,与-z一起使用时压缩该文件。-f选项指定后面的参数是归档文件名,即archive.tar.gz。后面给出的java/hello.c文件会被压缩打包。一般来说,用gzip压缩的文件都会以.gz结尾。在tar命令中使用gzip压缩,文件名将以.tar.gz结尾。但这不是强制性的。在Linux中,文件名的后缀并不决定文件的格式,只是为了方便查看。使用bzip2压缩tarcjfarchive.tar.bz2java/hello.c该命令中-j选项指定使用bzip2命令进行操作。一般而言,使用bzip2压缩的文件将以.bz2结尾。在tar命令中使用bzip2压缩,文件名将以.tar.bz2结尾。使用compress压缩tarcZfarchive.tar.Zjava/hello.c该命令中-Z选项指定使用compress命令进行操作。如果当前系统没有安装compress命令,会报错。一般来说,使用compress压缩的文件,文件名都会以.Z结尾。在tar命令中使用bzip2压缩,文件名将以.tar.Z结尾。自动根据归档文件的后缀使用相应的命令进行压缩$tarcafarchive.tar.gzjava/hello.c$filearchive.tar.gzarchive.tar.gz:gzip压缩后的数据,来自Unix,最后修改:2019年12月6日星期五14:50:57$tarcafarchive.tar.bz2java/hello.c$filearchive.tar.bz2archive.tar.bz2:bzip2压缩数据,tarcafarchive.tar.gz中的块大小=900kjava/hello.c命令中,-a选项指定根据归档文件的后缀自动选择对应的命令。这里提供的后缀是.gz,会用到gzip命令。执行该命令后,使用filearchive.tar.gz命令查看生成的文件格式,确实是gzip压缩格式。同样,在tarcafarchive.tar.bz2java/hello.c命令中,通过-a选项和.bz2后缀使用bzip2进行操作。使用tar解压的命令在tar命令中进行解压,同时使用了-z、-f、-Z选项。下面是一些使用tar解压的命令。使用gzip解压tarxzvfarchive.tar.gz在tarxzfarchive.tar.gz命令中,-z选项指定使用gzip命令进行操作,-x选项指定从归档文件中提取文件,以及-z的用途是解压压缩。-farchive.tar.gz指定解压archive.tar.gz归档文件并解压到本地。该文件必须是gzip格式的压缩文件才能正确解压。这里使用-v选项来打印提取的文件。此选项不是必需的。如果不加这个选项,解压时界面不会打印任何东西。使用bzip2解压tarxjvfarchive.tar.bz2该命令中-j选项指定使用bzip2命令进行操作。使用compress解压tarxZvfarchive.tar.Z该命令中-Z选项指定使用compress命令进行操作。注意:对于一些未以约定后缀结尾的归档压缩文件,可以使用file命令确认其格式,以便使用相应的选项进行解压。结合openssl命令加解密对归档文件进行加密在使用tar命令打包时,可以结合openssl命令对生成的归档文件进行加密。具体命令如下:tar-czf-文件名|openssldes3-salt-k密码|ddof=filename.des3在tar-czf-filename命令中,-zc指定使用gzip压缩给定的文件。如果你想使用其他压缩命令,你可以使用相应的选项来代替。-f-表示将创建的归档文件写入标准输出,tar命令可以把-当作文件名,进行一些特殊处理。稍后将详细解释。而filename是打包压缩文件的名称,可以提供多个文件名或目录名。此命令将生成的存档写入标准输出,以便存档的内容可以通过管道传输到openssl命令进行处理。查看GNUtar的在线帮助链接https://www.gnu.org/software/...以获取有关使用-作为文件名的说明:如果您使用“-”作为存档名称,tar从标准输入读取存档(在列出或提取文件时),或将其写入标准输出(在创建存档时)。如果您在修改档案时使用“-”作为档案名称,tar会从其标准输入中读取原始档案并将整个新档案写入其标准输出。即在创建归档文件时,使用-作为文件名,生成的归档文件将写入标准输出,而不会生成文件到本地文件系统。提取档案时,使用-作为文件名读取档案以从标准输入中提取。openssldes3-salt-kpasswd命令指定使用des3算法进行加密,-kpasswd指定加密加密,passwd可以修改为其他密码。如果需要使用其他算法进行加密,可以查看openssl的帮助说明。如果不想在终端上以明文形式输入密码,可以不提供-kpasswd选项,终端会提示输入密码而不回显。ddof=filename.des3命令指定加密后的文件名为filename.des3,可以更改为其他文件名。解密归档文件使用上面的命令加密归档文件后,可以使用下面的命令解密:ddif=filename.des3|openssldes3-d-k密码|tarzxf-ddif=filename.des3命令指定读取filename.des3文件内容。openssldes3-d-kpasswd命令表示使用des3算法解密。解密后的内容就是前面的tar命令生成的归档文件的内容,会写入标准输出,通过管道传递给后面的tar命令的标准输入。可以不提供-kpasswd选项,执行时会提示从终端输入密码,不会回显。tarzxf-该命令的意思是从标准输入中读取要解压的归档文件的内容,并将解压后的文件写入本地。