我想知道用什么命令来递归地压缩目标目录中的所有文件?我尝试使用 unzip 命令,但没有成功。
答案1
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
所有压缩文件(gunzip
当前可以解压由 gzip、zip、compress、compress -H 或 pack 创建的文件) :/foo/bar
gunzip -r /foo/bar
这也将处理带有空格的文件名。
答案2
使用以下命令。将其替换<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>