背景
我试图递归地压缩一个文件夹及其所有文件。我在脑海中尝试了一个命令,这显然是错误的。
结果是该文件夹及其所有子文件夹和文件仍然存在,但每个文件都经过 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
。