Subdiretórios Zip baseados em find, -exec

1

Aqui está o que eu gostaria de alcançar: Eu tenho alguns diretórios e subdiretórios neles (que podem ter sub-subdiretórios). Em cada subdiretório, quero um arquivo zip com o conteúdo desse diretório específico.

encontre bem meus subdiretórios:

find . -mindepth 2 -maxdepth 2 -type d

mas tenho dificuldade em completar o

-exec zip ... \;

Você poderia me ajudar com isso? Eu tentei muitas combinações, não consigo descobrir. : (

Para esclarecimentos, aqui está uma árvore.

├── DIR1
│   ├── FILE1
|   ├── FILE2
│   └── FILE3
├── FILE4
├── DIR2
│   ├── DIR3
│   │   ├── SUBDIR1
│   │   │   ├── SUBFILE1
│   │   │   ├── SUBSUBDIR1
│   │   │   │   ├── SUBSUBFILE1
│   │   │   │   └── SUBSUBFILE2
│   │   │   └── SUBSUBDIR1
│   │   │       ├── SUBSUBFILE3
│   │   │       └── SUBSUBFILE4
│   │   ├── FILE4
│   │   ├── FILE5
│   │   ├── FILE6
│   │   └── Zip file named DIR3.zip with FILE4, FILE5, FILE6
    
por user11426 30.11.2015 / 02:13

1 resposta

2

Usar -execdir em vez de -exec executa o comando do diretório find que está sendo percorrido no momento, o que torna esse problema um pouco mais fácil:

find . -mindepth 2 -maxdepth 2 -type d -execdir zip -r {}.zip {} ';'

Observe que a string {} é interpretada por find como o nome do arquivo atual e é relativa quando -execdir é usado.

    
por 30.11.2015 / 02:41

Tags