Como criar um arquivo zip de todos os arquivos PDF em diferentes subpastas?

0

Minha estrutura de diretórios é a seguinte:

application
├── CV
│   └── CV.pdf
├── Cover_letter
│   └── Cover_letter.pdf
├── Transcripts
│   ├── BSC.pdf
│   └── MSC.pdf
└── references
    ├── ref1.pdf
    └── ref2.pdf

Como faço para compactar esses 7 arquivos PDF do terminal para que eu obtenha um arquivo application.zip e, se eu extraí-lo novamente, todos os arquivos caiam em apenas uma pasta?

    
por zcqwevb 28.07.2013 / 09:11

2 respostas

1

Zip (com subdiretórios): zip -r {myzip.zip} aplicativo

Extrair (excluindo a estrutura de diret. dir): descompacte -d {destination}

    
por 28.07.2013 / 09:17
1

Use a opção -j (nomes indesejados) para que zip remova o caminho absoluto / relativo de cada arquivo adicionado e apenas o adicione pelo nome. No caso mais simples, onde sua pasta de aplicativos contém apenas arquivos PDF separados dos diretórios, use isto:

zip -jr application.zip application/

Se você tiver vários arquivos, precisará filtrá-los e adicioná-los um por um. Por exemplo, faça isso:

find application -type f -name '*.pdf' -exec zip -j application.zip {} \;

Isso adicionará todos os arquivos PDF no diretório application somente por seus nomes de base, para:

adding: Cover_letter.pdf (stored 0%)
adding: CV.pdf (stored 0%)
adding: ref1.pdf (stored 0%)
adding: ref2.pdf (stored 0%)
adding: BSC.pdf (stored 0%)
adding: MSC.pdf (stored 0%)
    
por 28.07.2013 / 09:40