Spakuj zawartość folderu bez dołączania samego folderu

76

Mam katalog o nazwie, folderktóra wygląda następująco:

folder
      -> root_folder
                    -> some files

Chcę spakować ten katalog zipped_dir, próbowałem:

zip -r zipped_dir.zip folder/*

Ale to generuje ZIP, który wygląda następująco:

zipped_dir
          -> folder
                   -> root_folder
                                 -> some files

innymi słowy, zawiera katalog, którego zawartość chcę spakować. Jak mogę wykluczyć ten katalog nadrzędny z ZIP, nie przenosząc niczego?

IE Chciałbym ten wynik końcowy:

zipped_dir
          -> root_folder
                        -> some files
Soczysty
źródło

Odpowiedzi:

74

Spróbuj użyć tego polecenia (wpadniesz na pomysł)

cd folder; zip -r ../zipped_dir.zip *

Może jest inny sposób, ale dla mnie jest to najszybszy i najprostszy :)

Romeo Ninov
źródło
2
działa to doskonale, wykonując tę ​​sztuczkę. Uwaga: zrobi to chroot .
loretoparisi,
odpowiednik:zip -r zipped_dir.zip folder/*
Tobias Kolb,
5
@TobiasKolb, może nie czytasz pytania. OP nie chce mieć folderu w zapisanej ścieżce w formacie zip.
Romeo Ninov
2
Wydaje się, że to jedyny sposób
Robert
1
@PabloDiaz, w moim przykładzie cd -wykona pracę (tylko jedno polecenie) :) Lubcd ..
Romeo Ninov
30

Użyj -j; na przykład:zip -r -j zipped_dir.zip folder/*

Nie spakuje „root_folder”.

AB
źródło
7
Występuje błąd w tym przypadku, jeśli mam dwa pliki o tej samej nazwie.
Chris
11
OP prawdopodobnie chce usunąć tylko katalog macierzysty, a nie wszystkie.
tokland
Nadal tworzy katalogi zip -r -j package.zip ./dist/static/*sprawia, że ​​struktura archiwumdist/static/myfiels
deathangel908
4
spłaszcza również pliki katalogu potomnego.
Sumit Ramteke
3
-jopcja wyeliminować wszystkie informacje o katalogu i tylko zapisać pliki. Oznacza to przechowywanie wszystkich plików w jednym katalogu w „płaski” sposób.
Robert
5
zip -r -D zipped.zip *

-D instruuje zip, aby nie tworzył katalogów.

L. Austin
źródło
0

Oto, co działa dla mnie:

7z a zipped.zip ./rootDir/*

Stworzy ziparchiwum z rootem: dowolne pliki / katalogi w środku rootDir.

Marinos An
źródło