linux
为什么 Linux 的包都是 .tar.gz 要解压两次?
一、为什么 Linux 的包都是 .tar.gz 要解压两次?
gzip 只是一个流压缩程序,输入一个流,输出压缩后的数据流。给它一个文件,文件本身自然就是一个流,读入、压缩、输出,还是保存成一个文件,没有问题。然而,如果是一个文件夹、多个文件,该怎么办呢?按什么顺序?怎么存储文件以外的信息?(例如路径、权限。)操作系统没有提供一种可以把若干个文件组织成一个流的 API ,gzip 就无能为力。
tar 则相反,它就是一个打包程序。天生就是为了处理打包多个文件的问题,它有专门的 manifest 来存储一些 metadata ,包括包里有什么文件、(相对)路径是什么、在包里的偏移量是什么……不过,它(最早)没有压缩功能。
想要打包多个文件,很简单,先 tar 再 gzip ,一个管道就搞定了。后缀名自然而然就是 .tar.gz 了。
以上说的都是历史上最早的 UNIX 工具。这些工具的设计很好地体现了 UNIX 一个工具只做一件事情、使用管道组合多个工具的思想。
当然,到了后来,大家也都觉得这样很麻烦,而且这个功能太过常用了。所以 GNU 项目在复刻 UNIX tar 的时候,选择了把各种常用的压缩解压都集成进 tar (详见下段),然后提供了一套(丧心病狂的)命令行参数,现在一条命令就可以完成打包加压缩了。解压也是一样,使用 GNU 的 tar 的话,一条命令就可以自动完成压缩加解包,不需要先 gunzip 。
关于 tar 调用其他压缩解压程序,之前误以为是链接了 zlib 、 bzip2 等等这些库,然而只需要简单的 ldd `which tar` 或者看各个发行版里 tar 软件包的依赖信息,就可以知道事情并非如此。 tar 的依赖仍然是非常少的。而压缩解压其实仍然是通过管道调用了这些独立的外部程序来实现的。这可以通过看 tar 的源代码、看 tar 二进制里的 strings (有很多常见压缩解压程序的命令名)、或者看压缩解压时的进程来发现。感谢
@王铭烨 Arthur2e5指出。
最后,其实现代的 GNU tar 是有一套根据扩展名自动识别压缩算法的机制的,免去了手动通过参数指定压缩算法的麻烦。压缩时使用 tar caf ,解压时使用 tar xaf 即可。其中 a 表示自动检测,这个 a 也可以省略,然而个人还是习惯输入——因为如果万一某个地方的 tar 版本不支持自动检测,你至少还能得到一个警告,否则 tar cf 的话最后可能建立了一个 foo.tar.gz 的没有压缩的 tar 包……
二、linux tar解压命令详解?
tar是Linux中常用的打包和解压工具,可以打包多个文件或目录成单个文件,也可以将单个文件解压成多个文件或目录。
解压tar文件的命令是tar -zxvf filename.tar.gz,其中 -z 表示使用gzip压缩格式,-x 表示解压缩,-v 表示显示文件解压缩的过程,-f 表示指定要解压缩的文件名。如果要解压不同的压缩格式,替换-z即可,如 -j表示使用bz2格式压缩。
三、linux下怎么解压.tar文件?
Linux解压缩带有tar后缀的文件用tar命令,也就是说tar命令可以用于tar.bz2和tar.gz文件的解压。tar命令参数解释:-z参数:表示解压的是tar.gz文件(如果是tar.bz2就是-j)-x参数:表示是执行解压缩操作而不是打包操作-v参数:表示列出解压时的详细消息-f参数:指定要解压的文件名tar命令解压时还可以指定解压的目标目录,也就是把压缩文件的内容解压到哪个文件夹内,这个参数是-C(大写的C)。tar命令解压文件的例子:解压tar.gz文件:tar -zxv -f test.tar.gz -C /home/user/target解压tar.bz2文件: tar -jxv -f test.tar.bz2 -C /home/user/target
四、Linux怎么进行tar.gz?
在Linux中,可以使用以下命令来进行tar.gz文件的操作:
1. 解压tar.gz文件:
```
tar -zxvf 文件名.tar.gz
```
该命令会解压指定的tar.gz文件并将其中的文件提取到当前目录下。
2. 压缩文件为tar.gz格式:
```
tar -zcvf 压缩文件名.tar.gz 要压缩的文件或目录
```
该命令会将指定的文件或目录压缩为tar.gz格式的压缩包。
下面是一些常用选项的解释:
- `-z`:表示使用gzip压缩或解压缩。
- `-x`:表示解压缩。
- `-c`:表示创建压缩文件。
- `-v`:表示在压缩或解压缩过程中显示详细信息。
请注意,上述命令中的"文件名.tar.gz"和"压缩文件名.tar.gz"应替换为实际的文件名或压缩文件名。另外,可以根据需要添加适当的路径,以指定文件的位置或压缩的目标位置。
五、tar包和tar.gz包有什么区别?
相同点是都可以把多个文件打包到一个文件,不同点是 jar是个压缩文件,而tar只打包,不压缩,所以tar还要配合其他压缩工具来压缩,比如tar.bz2,tar.gz 之类的就是在tar的基础上进行的压缩格式
六、谁能教下我LINUX下tar.gz包的安装方法?
tar.gz(bz或bz2等) 一、安装
1、打开一个SHELL,即终端
2、用cd 命令进入源代码压缩包所在的目录
3、根据压缩包类型解压缩文件(*代表压缩包名称) tar -zxvf ****.tar.gztar -jxvf ****.tar.bz(或bz2)
4、用CD命令进入解压缩后的目录
5、输入编译文件命令:./configure(有的压缩包已经编译过,这一步可以省去)
6、然后是命令:make
7、再是安装文件命令:make install
8、安装完毕
七、Linux下tar.xz文件解压?
其他方法:
一、通过 yum装个xz压缩包,然后解压,操作如下:
二、创建或解压tar.xz文件的方法
八、linux下tar.gz安装方法?
Linux下安装tar.gz文件方法如下,这里以安装支付宝插件为例:
1、下载tar.gz文件;
2、打开命令终端terminal;
3、改变工作路径:cd 命令;
4、解压tar.gz文件: $ tar -zxvf aliedit.tar.gz
5、安装文件 $ ./aliedit.sh
九、Linux系统下如何正确使用tar命令?
1、tar命令压缩语法:
tar 选项[cvfz][压缩后文件名] [目录]
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
范例: $ tar -zcvf dir1.tar.gz dir1
2、tar命令解压缩语法:
-x 解包.tar文件
-v 显示详细信息
-f 指定解压文件
-z 解压缩
范例:$ tar -zxvf dir1.tar.gz
十、linux压缩成tar格式的命令?
1. 压缩成tar格式的命令是存在的。2. 因为tar命令是用于打包文件和目录的工具,可以将多个文件或目录打包成一个文件,而不进行压缩。而Linux系统中,可以通过结合其他压缩命令来实现将tar文件进行压缩,例如使用gzip命令压缩为tar.gz格式,使用bzip2命令压缩为tar.bz2格式等。3. 此外,还可以使用tar命令的参数来直接进行压缩,例如使用参数"z"来使用gzip进行压缩,使用参数"j"来使用bzip2进行压缩,从而直接得到.tar.gz或.tar.bz2格式的压缩文件。这样可以更加方便地进行文件的打包和压缩操作。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...