Quero gzipar todos os arquivos *.vtu
, em todas as profundidades abaixo de um determinado diretório, no bash. Eu tenho esses arquivos nas profundidades 1 e 2 abaixo ./
. Eu consegui fazer isso com
$ gzip -v $(find . -name "*.vtu")
Eu também poderia usar find ... -exec
, e outras combinações (veja abaixo).
Existe alguma maneira de fazer isso apenas com o recurso gzip ( -r
era meu candidato)?
eu esperava
$ gzip -r -v "*.vtu"
onde o padrão não seria expandido pelo shell, mas expandido por gzip
(e de forma a produzir o resultado pretendido !), funcionaria para isso, mas consegui gzip: ...: No such file or directory
com todas as combinações que tentei. O que encontrei é o seguinte:
- Com
shopt -s globstar
(a partir daqui ), o comandogzip -v **/*.vtu
parece fazer exatamente o que eu quero. - Se
shopt | grep globstar
derglobstar off
, o comando acima não funciona. Nesse caso, posso usargzip -v */*.vtu
, mas só funciona com arquivos em profundidade=1. Da mesma forma comgzip -v */*/*.vtu
profundidade = 2.
De qualquer forma, não encontrei qual é o efeito/utilidade de flag -r
.
Relacionado :