背景

背景

背景

我试图递归地压缩一个文件夹及其所有文件。我在脑海中尝试了一个命令,这显然是错误的。

结果是该文件夹及其所有子文件夹和文件仍然存在,但每个文件都经过 gzip 压缩。

例如

#Folder - filename.php.gz - file2.txt.gz #Subfolder -filename.php.gz ETC。

我实际上不确定哪个命令导致了这个。我尝试了一些,大多数都导致了错误。但显然其中之一“有效”,但没有达到我想要的效果。

我怀疑这是导致问题的命令:gzip -r ocloud/ ocloud.zip

问题

我将使用什么命令来扭转这种情况?即保留所有文件夹和文件,但解压缩它们?

答案1

您应该能够使用该-d选项:

gzip -r -d ocloud/ ocloud.zip.gz

答案2

Antron 拥有最好的解决方案gzip -r -d ocloud/ ocloud.zip.gz,但仅仅因为其他选项很好,gzip -d $(find directory)当目录是包含所有 gzip 压缩文件的目录时,您也可以这样做。只是为了澄清,find递归列出在指定目录中找到的所有文件。当您使用 时$(someCommand)someCommand将运行,其输出将替换$(someCommand)。所以实际上,你会做gzip -d file1 subdirectory/file2 subdirectory/subsubdirectory/file3等等。

另外,使用 gzip 压缩目录的正确方法是先将其转换为未压缩的 tarball tar -cvf tarball.tar directory,然后使用 压缩 tarball gzip tarball.tar。解压缩时,您可以像gzip -d tarball.tar.gz然后一样向后重复tar -xvf tarball.tar,也可以使用 tar 为您完成所有操作tar -xvf tarball.tar.gz

相关内容