Polecenie Linux bunzip2: jak z niego korzystać
Co wiedzieć
- Użyj opcji polecenia -c --stdout skompresować/rozpakować do standardowego wyjścia i -d --dekompresuj wymusić dekompresję.
- Posługiwać się -t --test aby sprawdzić integralność określonych plików. Posługiwać się -f --siła aby wymusić nadpisanie plików wyjściowych. Posługiwać się -k --zachowaj aby zachować pliki wejściowe.
- Posługiwać się -s --mały zmniejszyć zużycie pamięci i -q --cichy aby wyłączyć komunikaty ostrzegawcze. Posługiwać się -v --verbose aby pokazać współczynniki kompresji plików.
W tym artykule wyjaśniono, jak używać Linux bunzip2 Komenda, który jest kompresorem plików z sortowaniem bloków, który może być używany zarówno do kompresji, jak i dekompresji danych. Kiedy wykonasz bzip2 bez żadnych opcji, system domyślnie kompresuje dane. bunzip2 domyślnie dekompresuje i bzcat dekompresuje do stdout.
Opcje poleceń Linuksa Bunzip2
Lista opcji poleceń bunzip2 | |
---|---|
Opcja | Wyjaśnienie |
-c --stdout | Skompresuj lub rozpakuj do standardowego wyjścia. |
-d --dekompresuj | Wymuś dekompresję. bzip2, bunzip2 i bzcat to tak naprawdę ten sam program, a decyzja o tym, jakie działania należy podjąć, jest podejmowana na podstawie używanej nazwy. Ta flaga zastępuje ten mechanizm i zmusza bzip2 do dekompresji. |
-z --kompresuj | Uzupełnienie do -d: wymusza kompresję, niezależnie od nazwy wywołania. |
-t --test | Sprawdź integralność określonych plików, ale nie dekompresuj ich. To naprawdę przeprowadza próbną dekompresję i odrzuca wynik. |
-f --siła |
Wymuś nadpisanie plików wyjściowych. Normalnie bzip2 nie nadpisuje istniejących plików wyjściowych. Wymusza również na bzip2 zerwanie twardych dowiązań do plików, czego inaczej by nie zrobił. bzip2 zwykle odmawia dekompresowania plików, które nie mają poprawnych magicznych bajtów nagłówka. Jeśli jednak zostanie wymuszone (-f), przekaże takie pliki przez niezmodyfikowane. Tak zachowuje się GNU gzip. |
-k --zachowaj | Zachowaj (nie usuwaj) plików wejściowych podczas kompresji lub dekompresji. |
-s --mały |
Zmniejsz zużycie pamięci do kompresji, dekompresji i testowania. Pliki są dekompresowane i testowane przy użyciu zmodyfikowanego algorytmu, który wymaga tylko 2,5 bajta na bajt bloku. Oznacza to, że każdy plik można zdekompresować w 2300k pamięci, aczkolwiek z około połową normalnej prędkości. Podczas kompresji -s wybiera rozmiar bloku 200k, co ogranicza użycie pamięci do mniej więcej tej samej wartości, kosztem współczynnika kompresji. Krótko mówiąc, jeśli twój komputer ma mało pamięci (8 megabajtów lub mniej), użyj -s do wszystkiego. Zobacz ZARZĄDZANIE PAMIĘCIĄ poniżej. |
-q --cichy | Pomiń zbędne komunikaty ostrzegawcze. Komunikaty dotyczące błędów we/wy i innych zdarzeń krytycznych nie będą pomijane. |
-v --verbose | Gadatliwy mode -- pokaż współczynnik kompresji dla każdego przetwarzanego pliku. Dalej -v zwiększa poziom szczegółowości, wyrzucając wiele informacji, które są przydatne przede wszystkim do celów diagnostycznych. |
-L --licencja | Wyświetl wersję oprogramowania, warunki licencji. |
-V --wersja |
Wyświetl wersję oprogramowania, warunki licencji. |
-1 lub -9 |
Ustaw rozmiar bloku na 100 k, 200 k.. 900 k podczas kompresji. Nie ma efektu podczas dekompresji. Traktuje wszystkie kolejne argumenty jako nazwy plików, nawet jeśli zaczynają się od myślnika. Dzięki temu możesz obsługiwać pliki, których nazwy zaczynają się od myślnika, na przykład: bzip2 -- -nazwa_pliku. |
--powtarzane-szybkie oraz --powtarzane-najlepsze są nadmiarowe w wersjach 0.9.5 i nowszych. Zapewniały pewną zgrubną kontrolę nad zachowaniem algorytmu sortowania we wcześniejszych wersjach, co czasami było przydatne. 0.9.5 i nowsze mają ulepszony algorytm, który sprawia, że te flagi są nieistotne.
Użyj człowiek dowództwo (% facet), aby zobaczyć, jak polecenie jest używane na danym komputerze.
Odkrywanie kompresji bunzip2
bzip2 kompresuje pliki przy użyciu algorytmu kompresji tekstu Burrowsa-Wheelera do sortowania bloków i kodowania Huffmana. Kompresja jest ogólnie znacznie lepszy niż osiągany przez bardziej konwencjonalne sprężarki oparte na LZ77/LZ78 i zbliża się do wydajności sprężarek statystycznych z rodziny PPM.
Opcje wiersza poleceń są celowo bardzo podobne do tych z GNU gzip, ale nie są identyczne.
bzip2 oczekuje listy nazw plików towarzyszących flagom wiersza poleceń. Każdy plik jest zastępowany skompresowaną wersją samego siebie o nazwie „nazwa_oryginalna.bz2”. Każdy skompresowany plik ma tę samą datę modyfikacji, uprawnienia i, jeśli to możliwe, prawo własności co odpowiedni oryginał, dzięki czemu te właściwości mogą być poprawnie przywrócone w czasie dekompresji.
Kiedy używać flagi -f?
Obsługa nazw plików jest naiwna w tym sensie, że nie ma mechanizmu zachowywania oryginalnych nazw plików, uprawnień, własności lub daty w systemach plików, które nie mają tych pojęć lub mają poważne ograniczenia dotyczące długości nazw plików, takie jak MS-DOS.
bzip2 oraz bunzip2 domyślnie nie nadpisze istniejących plików. Jeśli chcesz, aby tak się stało, określ -F flaga.
Jeśli nie określono żadnych nazw plików, bzip2 kompresuje ze standardowego wejścia do standardowego wyjścia. W tym przypadku, bzip2 odmówi zapisania skompresowanych danych wyjściowych do terminala, ponieważ byłoby to całkowicie niezrozumiałe, a zatem bezcelowe.
bunzip2 (lub bzip2 -d) dekompresuje wszystkie określone pliki. Pliki, które nie zostały utworzone przez bzip2 zostaną wykryte i zignorowane, a ostrzeżenie zostanie wydane. bzip2 próbuje odgadnąć nazwę pliku zdekompresowanego z nazwy pliku skompresowanego w następujący sposób:
- nazwa_pliku.bz2 staje się nazwą_pliku
- nazwa pliku.bz staje się nazwą pliku
- nazwapliku.tbz2 staje się nazwąpliku.tar
- nazwapliku.tbz staje się nazwąpliku.tar
- dowolnanazwa staje się dowolnanazwa.out
Jeśli plik nie kończy się na jednym z rozpoznanych rozszerzenia plików — BZ2, BZ, TBZ2 lub TBZ — bzip2 skarży się, że nie może odgadnąć nazwy oryginalnego pliku i używa oryginalnej nazwy z .na zewnątrz dołączone.
Podobnie jak w przypadku kompresji, niepodanie nazwy pliku powoduje dekompresję ze standardowego wejścia na standardowe wyjście.
bunzip2 poprawnie zdekompresuje plik, który jest połączeniem dwóch lub więcej skompresowanych plików. Rezultatem jest konkatenacja odpowiednich nieskompresowanych plików. Testy integralności (-T) połączonych skompresowanych plików jest również obsługiwana.
Używanie flagi -c dla standardowego wyjścia
Możesz także kompresować lub dekompresować pliki do standardowego wyjścia, podając -C flaga. Wiele plików może być kompresowanych i dekompresowanych w ten sposób. Wynikowe dane wyjściowe są podawane sekwencyjnie na standardowe wyjście. Kompresja wielu plików w ten sposób generuje strumień zawierający wiele reprezentacji skompresowanych plików.
Taki strumień można poprawnie rozpakować tylko przez bzip2wersja 0.9.0 lub nowsza. Wcześniejsze wersje bzip2 zatrzyma się po rozpakowaniu pierwszego pliku w strumieniu.
Dekompresja bzip2
bzcat (lub bzip2 -dc) dekompresuje wszystkie określone pliki na standardowe wyjście.
bzip2 odczyta argumenty ze zmiennych środowiskowych BZIP2 oraz BZIP, w tej kolejności i przetworzy je przed jakimikolwiek argumentami odczytanymi z wiersza poleceń. Daje to wygodny sposób na dostarczenie domyślnych argumentów.
Kompresja jest zawsze wykonywana, nawet jeśli skompresowany plik jest nieco większy niż oryginał. Pliki mniejsze niż około 100 bajtów mają tendencję do powiększania się, ponieważ mechanizm kompresji ma stały narzut w okolicach 50 bajtów. Losowe dane (w tym dane wyjściowe większości kompresorów plików) są kodowane z szybkością około 8,05 bitów na bajt, co daje rozszerzenie o około 0,5 procent.
bzip2 i CRC
Jako samokontrola dla Twojej ochrony, bzip2 używa 32-bitowych CRC, aby upewnić się, że zdekompresowana wersja pliku jest identyczna z oryginałem. Chroni to przed uszkodzeniem skompresowanych danych i niewykrytymi błędami w bzip2 (mam nadzieję, że bardzo mało prawdopodobne).
Szanse na niewykrycie uszkodzenia danych są mikroskopijne, około jedna czwarta na cztery miliardy na każdy przetworzony plik. Należy jednak pamiętać, że sprawdzenie następuje podczas dekompresji, więc może tylko powiedzieć, że coś jest nie tak. Nie może pomóc w odzyskaniu oryginalnych nieskompresowanych danych.
Możesz użyć bzip2recover spróbować odzyskać dane z uszkodzonych plików.