Jak mogę utworzyć i wyodrębnić archiwa zip z wiersza poleceń?
Jak mogę utworzyć i wyodrębnić archiwa zip z wiersza poleceń?
Odpowiedzi:
Zwykle używa tar
się do tworzenia nieskompresowanego archiwum i albo gzip
lub bzip2
skompresować tego archiwum. Odpowiednie polecenia gunzip
i bunzip2
mogą być użyte do rozpakowania wspomnianego archiwum, lub możesz po prostu użyć flag na tar
poleceniu, aby wykonać rozpakowanie.
Jeśli masz na myśli konkretnie format pliku Zip , możesz po prostu użyć poleceń zip
i unzip
.
Aby skompresować:
zip squash.zip file1 file2 file3
lub spakować katalog
zip -r squash.zip dir1
Aby zdekompresować:
unzip squash.zip
rozpakuje to w bieżącym katalogu roboczym.
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 :
tar -zcvf myfile.tgz .
który wykona bieżący katalog. Zamień na .
inne nazwy plików, jeśli chcesz czegoś innego.
Aby rozpakować ten plik, użyj:
tar -zxvf myfile.tgz
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ępnie gzip
(ponownie, jeśli jest dostępny) do kompresji, a gunzip
następnie tar 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.
tar jcvf file.tar.bz2...
do kompresji w formacie bzip2 lub tar 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:
jar -xf file.zip
Cóż, jeśli chodzi o dystrybucję plików dla różnych systemów operacyjnych, polecam 7-zip .
Zwykle w pakiecie p7zip
otrzymasz polecenie 7z
i 7za
, 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:
7za a archive.7z file1 file2 directory/
Dekompresowanie:
7za x archive.7z
Może również tworzyć samorozpakowujące się archiwa za pomocą -sfx
przełącznika:
7za a -sfx archive.exe files1 file2 dir
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 z tar
:
tar cJf archive.tar.xz file1 file2 dir
xz
UNIX jest narzędziem, które wykorzystuje LZMA2 kompresji, ale działa w ten sposób gz
, 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 o tar
pliku, polecam użyć xz
, ponieważ jest do tego przeznaczony):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
atool
, jest to ładne małe narzędzie, które sprawia, że korzystanie z wielu różnych sprężarek jest wygodniejsze. Zwróć uwagę, że a
tworzenie i tworzenie archiwum staje się a arc.7z folder/
lub wypakowywanie prostegoa arc.7z
unzip <filename>
i
zip -r archive.zip <filename> [filename]
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.
BSD Tar może to również zrobić
bsdtar acf bravo.zip alfa.jpg
Lub:
bsdtar xf bravo.zip
tar
ma tę zaletę, że obsługuje całkiem sporo dodatkowych formatów kompresji w porównaniu do GNU tar
i innych tar
. Największą korzyścią jest być może to, że robi to przy użyciu tar
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 ponad cpio
i tar
.
W przeciwieństwie cpio
do POSIX tar
, ale podobnie jak GNU tar
, pax
jest w stanie archiwizować pliki i kompresować archiwum. To zachowanie różni się od tego zip
, że kompresuje każdy plik przed umieszczeniem go w archiwum.
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żesz apt
| yum
Zainstaluj to.
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:
Foo.h
Bar.cc
TestBar.cc
Wykonuję następujące polecenie, aby spakować te pliki:
cat modified-files.txt | zip modified-files.zip -@