Jak Zip lub rozpakować pliki z terminala Linux
- Dave McKay
@TheGurkha
- Zaktualizowano 28 maja 2019, 17:15 EDT
pliki zip są uniwersalnym Archiwum powszechnie używane w systemach Windows, MacOS, a nawet Linux. Możesz utworzyć archiwum zip lub rozpakować pliki z jednego z popularnych poleceń terminala Linux.
Format skompresowanego archiwum ZIP
dzięki dominacji formatu ZIP w świecie Windows, pliki ZIP są prawdopodobnie najczęstszą formą skompresowanego archiwum na świecie.
While .smoła.pliki gz i tar. bz2 są powszechne w systemie Linux, użytkownicy systemu Windows prawdopodobnie wyślą ci archiwum w formacie ZIP. A jeśli chcesz zarchiwizować niektóre pliki i wysłać je do użytkownika systemu Windows, format ZIP będzie najłatwiejszym i najbardziej kompatybilnym rozwiązaniem dla wszystkich.
RELATED: How To Extract Files From a .smoła.gz lub .smoła.plik bz2 w systemie Linux
zip, Rozpakuj i inne narzędzia
możesz już wiedzieć, że systemy operacyjne Linux i Unix, takie jak macOS, mają narzędzia umożliwiające tworzenie plików ZIP i wyodrębnianie z nich plików, o nazwie zip
I unzip
. Ale istnieje cała rodzina powiązanych narzędzi, takich jak zipcloak
zipdetails
zipsplit
I zipinfo
.
sprawdziliśmy niektóre dystrybucje Linuksa, aby sprawdzić, czy zawierają te narzędzia w standardowej instalacji. Wszystkie narzędzia były obecne w Ubuntu 19.04, 18.10 i 18.04. Byli również obecni w Manjaro 18.04. Fedora 29 zawiera zip
I unzip
, ale żadne z innych narzędzi i tak było również w przypadku CentOS.
aby zainstalować brakujące elementy na Fedorze 29, użyj następującego polecenia:
sudo dnf install perl-IO-Compress
aby zainstalować brakujące elementy na CentOS 7, Użyj następującego polecenia:
sudo yum install perl-IO-Compress
Jeśli brakuje któregokolwiek z narzędzi ZIP w dystrybucji Linuksa, która nie została wymieniona powyżej, użyj narzędzia do zarządzania pakietami tej dystrybucji Linuksa, aby zainstalować wymagany pakiet.
Jak utworzyć plik ZIP za pomocą polecenia zip
aby utworzyć plik ZIP, musisz podaćzip
nazwę pliku archiwum i pliki, które mają być w nim zawarte. Nie musisz dodawać”.zip ” rozszerzenie do nazwy archiwum, ale nie szkodzi, jeśli to zrobisz.
aby utworzyć plik o nazwie source_code.zip
zawierający wszystkie pliki kodu źródłowego C i pliki nagłówkowe w bieżącym katalogu, należy użyć tego polecenia:
zip source_code *.c *.h
każdy plik jest wyświetlany jako dodano. Pokazana jest nazwa pliku i ilość kompresji, która została osiągnięta na tym pliku.
Jeśli spojrzysz na nowe archiwum ZIP, zobaczysz, że „.rozszerzenie pliku zip” zostało dodane automatycznie przez zip
.
ls -l source_code.zip
Jeśli nie chcesz widzieć wyjścia z zip
podczas tworzenia pliku ZIP, użyj -q
opcja div > (cichy).
zip -q source_code *.c *.h
w tym katalogi w plikach ZIP
aby dołączyć podkatalogi do pliku ZIP, użyj opcji-r
(recursive) i dołącz nazwę pliku.podkatalog w wierszu poleceń. Aby utworzyć plik ZIP jak wcześniej, a także zawierać podkatalog archiwum, użyj tego polecenia.
zip -r -q source_code archive/ *.c *.h
aby być uważnym dla osoby, która będzie rozpakowywać pliki z tworzonego pliku ZIP, często uprzejme jest tworzenie plików ZIP z plikami wewnątrz nich zawartymi w katalogu. Gdy osoba, która otrzymuje plik ZIP, rozpakowuje go, wszystkie pliki są starannie umieszczane w katalogu na komputerze.
w poniższym poleceniu archiwizujemy katalogwork
I wszystkie podkatalogi. Zauważ, że polecenie to jest wydawane z katalogu nadrzędnego katalogu work
.
zip -r -q source_code work/
Ustawianie poziomu kompresji
Możesz ustawić, ile kompresji zostanie zastosowana do plików, gdy zostaną dodane do archiwum ZIP. Zakres wynosi od 0 do 9, przy czym 0 nie oznacza żadnej kompresji. Im wyższa kompresja, tym dłużej trwa tworzenie pliku ZIP. W przypadku plików ZIP o niewielkich rozmiarach różnica czasu nie stanowi znaczącej kary. Ale wtedy, dla skromnych rozmiarów plików ZIP, domyślna kompresja (poziom 6) jest prawdopodobnie wystarczająco dobra.
aby uzyskać zip
aby użyć określonego poziomu kompresji, przekaż numer jako opcję w wierszu poleceń, z „-„, w ten sposób:
zip -0 -r -q source_code work/
domyślnym poziomem kompresji jest 6. Nie ma potrzeby podawania opcji -6
, ale nie zaszkodzi, jeśli to zrobisz.
zip -r -q source_code work/
maksymalny poziom kompresji to poziom 9.
zip -9 -r -q source_code work/
przy wyborze plików i katalogów archiwizowanych tutaj, różnica między kompresją bez (poziom 0) a kompresją domyślną (poziom 6) wynosi 400K. Różnica między domyślną kompresją a najwyższym poziomem kompresji (poziom 9) wynosi tylko 4K.
To może nie wydawać się zbyt wiele, ale w przypadku archiwów zawierających setki, a nawet tysiące plików, niewielka ilość dodatkowej kompresji na plik spowodowałaby oszczędność miejsca.
dodawanie haseł do plików ZIP
dodawanie haseł do plików ZIP jest łatwe. Użyj opcji -e
(szyfrowanie), a zostaniesz poproszony o wprowadzenie hasła i ponowne jego wprowadzenie w celu weryfikacji.
zip -e -r -q source_code work/
jak rozpakować plik ZIP za pomocą polecenia rozpakuj
aby wyodrębnić pliki z pliku ZIP, użyj polecenia Rozpakuj i podaj nazwę pliku ZIP. Pamiętaj, że musisz podać”.zip ” rozszerzenie.
unzip source_code.zip
Po rozpakowaniu plików są one wyświetlane w oknie terminala.
pliki ZIP nie zawierają szczegółów własności pliku. Wszystkie wyodrębnione pliki mają ustawionego właściciela na użytkownika, który je wyodrębnia.
podobnie jakzip
unzip
ma opcję-q
(cichy), dzięki czemu nie musisz widzieć listy plików podczas wyodrębniania plików.
unzip -q source_code.zip
Wyodrębnianie plików do katalogu docelowego
aby pliki zostały rozpakowane w określonym katalogu, użyj opcji-d
(katalog), i podaj ścieżkę do katalogu, do którego chcesz rozpakować archiwum.
unzip -q source_code.zip -d ./development
Wyodrębnij zabezpieczone hasłem pliki ZIP
Jeśli plik ZIP został utworzony z hasłem,unzip
poprosi Cię o hasło. Jeśli nie podasz poprawnego hasła, unzip
nie wyodrębni plików.
unzip -q source_code.zip
Jeśli nie dbasz o to, że Twoje hasło jest widoczne dla innych—ani o to, że jest przechowywane w historii poleceń—możesz podać hasło w wierszu poleceń za pomocą-P
(hasło) opcja. (Musisz użyć dużej litery ” P.”)
unzip -P fifty.treacle.cutlass -q source_code.zip
wykluczanie plików
Jeśli nie chcesz wyodrębniać określonego pliku lub grupy plików, użyj opcji-x
(wyklucz). W tym przykładzie chcemy wyodrębnić wszystkie pliki poza tymi końcowymi na”.H ” rozszerzenie.
unzip -q source_code.zip -x *.h
nadpisywanie plików
Załóżmy, że wyodrębniłeś archiwum, ale przez pomyłkę usunąłeś kilka wyodrębnionych plików.
szybką poprawką byłoby ponowne rozpakowanie plików. Ale jeśli spróbujesz rozpakować plik ZIP w tym samym katalogu, co poprzednio, unzip
poprosi Cię o decyzję dotyczącą nadpisania plików. Oczekuje jednej z następujących odpowiedzi.
oprócz odpowiedzir
(zmiana nazwy), w odpowiedziach tych rozróżniana jest wielkość liter.
- y: tak, Nadpisz ten plik
- n: Nie, Nie nadpisuj tego pliku
- a: wszystkie, Nadpisz wszystkie pliki
- N: brak, Nadpisz żaden z plików
- R: Zmień nazwę, rozpakuj ten plik, ale nadaj mu nową nazwę. Zostaniesz poproszony o nową nazwę.
, aby wymusićunzip
aby nadpisać istniejące pliki, użyj opcji-o
(Nadpisz).
unzip -o -q source_code.zip
najskuteczniejszym sposobem zastąpienia brakujących plików byłoby rozpakowanieunzip
tylko plików z archiwum, które nie znajdują się w katalogu docelowym. Aby to zrobić, użyj opcji-n
(nigdy nie nadpisuj).
unzip -n source_code.zip
przeglądając plik ZIP
często przydatne i pouczające jest zobaczenie listy plików wewnątrz pliku ZIP przed rozpakowaniem go. Możesz to zrobić za pomocą opcji-l
(list archive). Jest on przesyłany przez less
, aby wyjście było możliwe do zarządzania.
unzip -l source_code.zip | less
wyjście pokazuje katalogi i pliki w pliku ZIP, ich długość oraz czas i datę dodania do archiwum. Naciśnij „q”, aby zakończyć pracę z less
.
istnieją inne sposoby zaglądania do pliku ZIP, które dają różne rodzaje informacji, jak zobaczymy.
Dodaj hasło za pomocą polecenia zipcloak
jeśli utworzyłeś plik ZIP, ale zapomniałeś dodać hasło, co możesz zrobić? Możesz szybko dodać hasło do pliku ZIP za pomocą poleceniazipcloak
. Podaj nazwę pliku ZIP w wierszu poleceń. Zostaniesz poproszony o podanie hasła. Musisz zweryfikować hasło, wprowadzając je po raz drugi.
zipcloak source_code.zip
Wyświetl szczegóły Pliku za pomocą polecenia zipdetails
poleceniezipdetails
pokaże Ci wiele informacji dotyczących pliku ZIP. Jedynym sensownym sposobem na obsĹ 'ugÄ ™ iloĹ”ci wyjĹ”cia, ktĂłre moĹźe daÄ ‡ to polecenie, jest przepuszczenie go przez less
.
zipdetails source_code.zip | less
należy pamiętać, że informacje będą zawierać nazwy plików, nawet jeśli plik ZIP jest chroniony hasłem. Ten typ informacji jest przechowywany w pliku ZIP jako metadane i nie jest częścią zaszyfrowanych danych.
Szukaj wewnątrz pliku za pomocą polecenia Zipgrep
poleceniezipgrep
umożliwia wyszukiwanie w plikach w pliku ZIP. W poniższym przykładzie chcemy wiedzieć, które pliki w pliku ZIP mają tekst ” keyval.h ” w nich.
zipgrep keyval.h source_code.zip
widzimy, że plikislang.c
Igetval.c
zawierają ciąg „keyval.h”.Możemy również zobaczyć, że istnieją dwie kopie każdego z tych plików w różnych katalogach w pliku ZIP.
Wyświetl informacje za pomocą polecenia zipinfo
polecenie zipinfo
daje Ci kolejny sposób na zajrzenie do pliku ZIP. Jak poprzednio, przepuszczamy wyjście przez less
.
zipinfo source_code.zip | less
od lewej do prawej wyjście pokazuje:
- uprawnienia do pliku
- wersja narzędzia służąca do utworzenia pliku ZIP
- oryginalny Rozmiar pliku
- deskryptor pliku (opisany poniżej)
- metoda kompresji (deflacja, w tym przypadku)
- znacznik danych i czasu
- nazwa pliku i dowolnego katalogu
plik deskryptor składa się z dwóch znaków. Pierwszy znak będzie „t” lub „b”, aby wskazać plik tekstowy lub binarny. Jeśli jest to wielka litera, plik jest zaszyfrowany. Drugi znak może być jednym z czterech znaków. Ten znak reprezentuje rodzaj metadanych zawartych w tym pliku: brak, Rozszerzony nagłówek lokalny,” Dodatkowe pole ” lub oba te elementy.
- -: jeśli nie istnieje, znak będzie myślnikiem
- l: jeśli istnieje Rozszerzony nagłówek lokalny, ale nie ma dodatkowego pola
- x: jeśli nie ma rozszerzonego nagłówka lokalnego, ale istnieje dodatkowe pole
- X: jeśli istnieje Rozszerzony nagłówek lokalny i jest Dodatkowe pole
podziel plik za pomocą polecenia zipsplit
Jeśli chcesz wysłać plik ZIP do kogoś innego, ale istnieją ograniczenia rozmiaru lub problemy z transmisją pliku, możesz użyć zipsplit
polecenie pozwalające podzielić oryginalny plik zip na zestaw mniejszych plików ZIP.
opcja-n
(size) pozwala ustawić maksymalny rozmiar dla każdego nowego pliku ZIP. W tym przykładzie dzielimy plik source_code.zip
. Nie chcemy, aby nowy plik ZIP był większy niż 100 KB (102400 bajtów).
zipsplit -n 102400 source_code.zip
wybrany rozmiar nie może być mniejszy niż rozmiar żadnego z plików w pliku ZIP.
za pomocą tych poleceń możesz tworzyć własne pliki ZIP, rozpakowywać otrzymane pliki ZIP i wykonywać na nich różne inne operacje bez opuszczania terminala Linux.
Dave McKay po raz pierwszy użył komputerów, gdy taśma perforowana była w modzie i od tego czasu programuje. Po ponad 30 latach pracy w branży IT, obecnie jest dziennikarzem technologicznym na pełny etat. W trakcie swojej kariery pracował jako niezależny Programista, Kierownik międzynarodowego zespołu programistycznego, kierownik projektów usług IT, a ostatnio jako Inspektor Ochrony Danych. Dave jest ewangelistą Linuksa i zwolennikiem open source.Przeczytaj cały Biogram ”
Leave a Reply