*.vtu
我的意思是在 bash 中对给定目录下所有深度的所有文件进行 gzip 压缩。我在下面的深度 1 和 2 中有这样的文件./
。我设法做到了
$ gzip -v $(find . -name "*.vtu")
我还可以使用find ... -exec
, 和其他组合(见下文)。
有没有办法只使用 gzip 的功能来做到这一点(-r
是我的候选人)?
我期望
$ gzip -r -v "*.vtu"
其中模式不会被 shell 扩展,而是被扩展gzip
(并且以某种方式产生我的预期结果!),将适用于此,但我得到了gzip: ...: No such file or directory
我尝试过的所有组合。我发现的是以下内容:
- 使用
shopt -s globstar
(来自这里),该命令gzip -v **/*.vtu
似乎完全符合我的要求。 - 如果
shopt | grep globstar
给出globstar off
,则上面的命令不起作用。在本例中,我可以使用gzip -v */*.vtu
,但它仅适用于深度=1 的文件。同样,gzip -v */*/*.vtu
深度=2 时。
无论如何,我没有找到 flag 的效果/用处-r
。
有关的: