Jak utworzyć plik zip wszystkich plików PDF w różnych podfolderach?

0

Moja struktura katalogów wygląda następująco:

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

Jak skompresować te 7 plików PDF z terminala, aby uzyskać application.zip plik, a jeśli wyodrębnię go ponownie, wszystkie pliki lądują w jednym folderze?

zcqwevb
źródło

Odpowiedzi:

1

Zip (w / subdirs): zip -r {myzip.zip} aplikacja

Wyciąg (z wyłączeniem struktury org. Dir): unzip -d {cel}

user241362
źródło
-1, co nie osiąga tego, czego chce OP. Kompresowanie całości application folder spowoduje wyodrębnienie tej samej struktury katalogów, a nie wszystkich 7 plików PDF w jednym folderze.
slhck
1

Użyj -j opcja (śmieciowe nazwy) zip usuń bezwzględną / względną ścieżkę każdego dodanego pliku i dodaj ją tylko po nazwie. W najprostszym przypadku, gdy folder aplikacji zawiera tylko pliki PDF oprócz katalogów, użyj tego:

zip -jr application.zip application/

Jeśli masz różne pliki, musisz je filtrować i dodawać pojedynczo, na przykład:

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

Spowoduje to dodanie wszystkich plików PDF w application katalog tylko według ich nazwy podstawowej, do:

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%)
slhck
źródło