当前位置: 首页>>技术教程>>正文


extract – 如何在目标目录中递归地压缩所有文件?

,

问题描述

我想知道用什么命令来递归地压缩目标目录中的所有文件?我尝试使用 unzip 命令,但没有用。

我尝试了来自 Unzip all zip files in a target folder? 的命令

最佳思路

gunzip-r 选项。从 man gunzip

   -r --recursive
          Travel  the directory structure recursively. If any of the 
file names specified on the command line are directories, gzip 
will descend into the directory and compress all the files it finds
there (or decompress them in  the  case  of gunzip ).

所以,如果你想要 gunzip 目录 /foo/bar 及其所有子目录中的所有压缩文件(gunzip 目前可以解压缩由 gzip、zip、compress、compress -H 或 pack 创建的文件):

gunzip -r /foo/bar

这也将处理带有空格的文件名。

次佳思路

使用下面的命令。将 <path_of_your_zips> 替换为 ZIP 文件的路径,将 <out> 替换为目标文件夹:

  • 对于 GZ 文件

    find <path_of_your_zips> -type f -name "*.gz" -exec tar xf {} -C <out> \;
    

    或者

    find <path_of_your_zips> -type f -name "*.gz" -print0 | xargs -0 -I{} tar xf {} -C <out>
    
  • 对于 ZIP 文件

    find <path_of_your_zips> -type f -name "*.zip" -exec unzip {} -d <out> \;
    

    或者

    find <path_of_your_zips> -type f -name "*.zip" -print0 | xargs -0 -I{} unzip {} -d <out>
    

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12325.html,未经允许,请勿转载。