使用命令“gzip”创建存档

使用命令“gzip”创建存档

我必须使用命令 gzip (不是 tar - 这是必要的)创建一个存档,并且该存档应该包含来自另一个目录的文件 - 例如,/etc。我尝试使用命令

gzip myetc.gz /etc

但这没有用。

答案1

gzip适用于文件,而不是目录。因此,要创建您需要使用的目录的存档tar(这将从多个文件中创建一个 tarball):

tar cvf myetc.tar /etc

或者,对于 gzip 压缩的存档:

tar cvzf myetc.tar.gz /etc

答案2

Gzip 仅适用于单个文件或流 - 通过管道传输到 gzip 的数据。因此,您首先需要生成一个文件,就像使用 tar 一样,然后您可以对其进行 gzip。另一种选择是对所有单个文件进行 gzip 压缩,然后将其压缩到一个文件中。

这两种解决方案都很愚蠢,不应该使用。您应该将 tar 与内置压缩选项一起使用,并在一个命令中完成所有操作。

答案3

如果您确实没有可用的 tar,您可以使用 gzip 使用选项(-r - 递归)创建目录的备份,但也许这并不完全是您所期望的......

如果您想保持原始目录不可更改,首先您需要将目录复制到另一个名称。

#cp -a directory my_gzip_alone_backup

其次,您将递归地压缩目录中的所有文件(-r)。

#gzip -r my_gzip_alone_backup

现在让我们看一下 my-gzip-alone-backup 的内部。您不会像您期望的那样拥有单个文件 myfile.gz,而是递归地获得许多 gzip 压缩文件。但由于符号链接,用 etc 来做这件事并不好......

要解压缩目录,可以使用gunzip 应用相同的逻辑。

另一种方法是将目录转换为单个文件,如果您没有 tar 来执行此操作,但有 dd util,如本文中所示:https://askubuntu.com/questions/626634/converting-a-file-to-directory

相关内容