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 tarsię do tworzenia nieskompresowanego archiwum i albo gziplub bzip2skompresować tego archiwum. Odpowiednie polecenia gunzipi bunzip2mogą być użyte do rozpakowania wspomnianego archiwum, lub możesz po prostu użyć flag na tarpoleceniu, aby wykonać rozpakowanie.
Jeśli masz na myśli konkretnie format pliku Zip , możesz po prostu użyć poleceń zipi 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).
zipmoż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.zipdo 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ą tarprogramu 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 tarmożliwość kompresji, a także łączenia plików w jeden.
Jeśli nie, możesz po prostu użyć, tar cvfa następnie gzip(ponownie, jeśli jest dostępny) do kompresji, a gunzipnastępnie tar xvf.
Do konkretnej obsługi plików w formacie ZIP polecam pobranie 7zipi 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ć jardo 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 p7zipotrzymasz polecenie 7zi 7za, za pomocą którego możesz tworzyć własne archiwa 7z.
7zamoże również dekompresować standardowe archiwa zip ( pkzip ) (i tworzyć je również za pomocą -tzipprzełą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ą -sfxprzełą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 -Jprzełącznika z tar:
tar cJf archive.tar.xz file1 file2 dir
xzUNIX jest narzędziem, które wykorzystuje LZMA2 kompresji, ale działa w ten sposób gz, bz2itp 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ć tarprzed użyciem 7z (ale ponieważ 7z przechowuje inne informacje o tarpliku, 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 atworzenie 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
tarma tę zaletę, że obsługuje całkiem sporo dodatkowych formatów kompresji w porównaniu do GNU tari innych tar. Największą korzyścią jest być może to, że robi to przy użyciu tarskładni podobnej do podobnej . Można oczywiście użyć 7z, unrar, unzipitp z linii poleceń, ale oni użyć innego składnię.
Najbardziej standardową odpowiedzią jest pax, która jest zalecana ponad cpioi tar.
W przeciwieństwie cpiodo POSIX tar, ale podobnie jak GNU tar, paxjest 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.
paxobsługuje archiwa zip?
paxarchiwó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.
dtrxjest dostępny w większości repozytoriów, więc możesz apt| yumZainstaluj 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 zipz 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 -@