Jak mogę utworzyć i wyodrębnić archiwa zip z wiersza poleceń?
command-line
zip
joachim
źródło
źródło
Odpowiedzi:
Zwykle używa
tar
się do tworzenia nieskompresowanego archiwum i albogzip
lubbzip2
skompresować tego archiwum. Odpowiednie poleceniagunzip
ibunzip2
mogą być użyte do rozpakowania wspomnianego archiwum, lub możesz po prostu użyć flag natar
poleceniu, aby wykonać rozpakowanie.Jeśli masz na myśli konkretnie format pliku Zip , możesz po prostu użyć poleceń
zip
iunzip
.Aby skompresować:
lub spakować katalog
Aby zdekompresować:
rozpakuje to w bieżącym katalogu roboczym.
źródło
zip -r9 archive.zip files...
składni (-r = rekurencyjna -9 = maksymalna kompresja).zip
można tworzyć wiele różnych wersji archiwów .ZIP, a także używać wielu różnych kompresorów. Z drugiej strony istnieje wiele innych narzędzi do kompresji o podobnych nazwach: 7-Zip, gzip, bzip2, rzip itp., Których nie można zamieniać.cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zip
do wyodrębnienia nowego osobnego katalogu (myfolder
) zamiast umieszczania wszystkich plików bezpośrednio w bieżącym katalogu, co może być denerwujące, jeśli plik zip zawiera wiele plików i katalogów na najwyższym poziomie. To naśladuje działanie większości narzędzi do rozpakowywania interfejsu użytkownika.Istnieje naprawdę ogromna liczba różnych sposobów do kompresji i dekompresji pod pochodnymi UNIX więc mam zamiar założyć, chodziło o „zip” w sensie ogólnym, a nie konkretnego formatu pliku.
Możesz skompresować pliki (w skompresowanym formacie) za pomocą
tar
programu GNU :który wykona bieżący katalog. Zamień na
.
inne nazwy plików, jeśli chcesz czegoś innego.Aby rozpakować ten plik, użyj:
Zakłada się oczywiście, że masz
tar
możliwość kompresji, a także łączenia plików w jeden.Jeśli nie, możesz po prostu użyć,
tar cvf
a następniegzip
(ponownie, jeśli jest dostępny) do kompresji, agunzip
następnietar xvf
.Do konkretnej obsługi plików w formacie ZIP polecam pobranie
7zip
i użycie tego - rozpoznaje on wiele różnych formatów plików, w tym ZIP.źródło
tar jcvf file.tar.bz2...
do kompresji w formacie bzip2 lubtar Jcvf file.tar.xz ...
do kompresji xz.Jeśli nie masz zainstalowanych pakietów zip i rozpakuj i masz Java, możesz użyć
jar
do rozpakowania:źródło
Cóż, jeśli chodzi o dystrybucję plików dla różnych systemów operacyjnych, polecam 7-zip .
Zwykle w pakiecie
p7zip
otrzymasz polecenie7z
i7za
, za pomocą którego możesz tworzyć własne archiwa 7z.7za
może również dekompresować standardowe archiwa zip ( pkzip ) (i tworzyć je również za pomocą-tzip
przełącznika).Ściskanie:
Dekompresowanie:
Może również tworzyć samorozpakowujące się archiwa za pomocą
-sfx
przełącznika:Polecam tę metodę, jeśli użytkownicy systemu Windows nie mogą otworzyć archiwów 7z (na wypadek, gdybyś chciał zasugerować narzędzie do tego: PeaZip ).
Jeśli chcesz używać tego samego algorytmu kompresji ze swoimi archiwami, użyj
-J
przełącznika ztar
:xz
UNIX jest narzędziem, które wykorzystuje LZMA2 kompresji, ale działa w ten sposóbgz
,bz2
itp działa. Działa nawet jako filtr.7z nie tworzy archiwów z pełną informacją o systemie plików w systemie UNIX, więc musisz użyć
tar
przed użyciem 7z (ale ponieważ 7z przechowuje inne informacje otar
pliku, polecam użyćxz
, ponieważ jest do tego przeznaczony):źródło
atool
, jest to ładne małe narzędzie, które sprawia, że korzystanie z wielu różnych sprężarek jest wygodniejsze. Zwróć uwagę, żea
tworzenie i tworzenie archiwum staje sięa arc.7z folder/
lub wypakowywanie prostegoa arc.7z
i
Musisz upewnić się, że te polecenia są zainstalowane za pośrednictwem menedżera pakietów. Nie jest to trudniejsze niż użycie czegokolwiek innego w wierszu poleceń. Jest to z pewnością prostsze niż tworzenie archiwów za pomocą tar.
źródło
BSD Tar może to również zrobić
Lub:
źródło
tar
ma tę zaletę, że obsługuje całkiem sporo dodatkowych formatów kompresji w porównaniu do GNUtar
i innychtar
. Największą korzyścią jest być może to, że robi to przy użyciutar
składni podobnej do podobnej . Można oczywiście użyć7z
,unrar
,unzip
itp z linii poleceń, ale oni użyć innego składnię.Najbardziej standardową odpowiedzią jest
pax
, która jest zalecana ponadcpio
itar
.W przeciwieństwie
cpio
do POSIXtar
, ale podobnie jak GNUtar
,pax
jest w stanie archiwizować pliki i kompresować archiwum. To zachowanie różni się od tegozip
, że kompresuje każdy plik przed umieszczeniem go w archiwum.źródło
pax
obsługuje archiwa zip?pax
archiwów!Dotyczy to tylko ekstrakcji.
Do tego zacząłem używać
dtrx
.Chodzi o to, aby usunąć złożoność. Po prostu przekazujesz do niego dowolne archiwum, które pokazuje, co należy z tym zrobić. Zip, tar, gz ... Użycie jest zawsze takie samo -
dtrx archive.zip
. Zadaje kilka pytań i gotowe.dtrx
jest dostępny w większości repozytoriów, więc możeszapt
|yum
Zainstaluj to.źródło
Często próbuję spakować zmodyfikowane pliki w moim katalogu roboczym - albo skopiować wszystkie zmodyfikowane pliki do innego katalogu roboczego piaskownicy, albo zachować je na krótki czas, ponieważ chcę cofnąć niektóre zmiany.
W takim przypadku kopiuję listę zmodyfikowanych plików do pliku tymczasowego i używam
zip
z tą opcją-@
.Powiedzmy, że zmodyfikowałem pliki Foo.h, Bar.cc i TestBar.cc.
Załóżmy, że tworzę plik o nazwie Modified-files.txt, którego zawartość to:
Wykonuję następujące polecenie, aby spakować te pliki:
źródło