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

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 :)


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”.


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


0

Oto, co działa dla mnie:

7z a zipped.zip ./rootDir/*

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.