问题描述
我想知道用什么命令来递归地压缩目标目录中的所有文件?我尝试使用 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>