lbzip2 — Internet w chmurze

Jest to polecenie lbzip2, które można uruchomić w bezpłatnym dostawcy hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


lbzip2 - równoległe narzędzie bzip2

STRESZCZENIE


lbzip2|bzip2 [-n WTR] [-k|-c|-t] [-d] [-1 .. -9] [-f] [-s] [-u] [-v] [-S] [ FILE ... ]

lbunzip2|bunzip2 [-n WTR] [-k|-c|-t] [-z] [-f] [-s] [-u] [-v] [-S] [ FILE ... ]

lbzcat|bzcat [-n WTR] [-z] [-f] [-s] [-u] [-v] [-S] [ FILE ... ]

lbzip2|bzip2|lbunzip2|bunzip2|lbzcat|bzcat -h

OPIS


Kompresuj lub dekompresuj FILE operandy lub standardowe wejście do zwykłych plików lub standardowego wyjścia
przy użyciu algorytmu kompresji tekstu Burrowsa-Wheelera sortującego blokowo. The lbzip2 użyteczność
wykorzystuje wiele wątków i rozdzielacz związany z danymi wejściowymi, nawet podczas dekompresji . Bz2 pliki
utworzony przez standardowy plik bzip2.

Kompresja jest na ogół znacznie lepsza niż ta osiągana w przypadku bardziej konwencjonalnych rozwiązań
Sprężarki oparte na LZ77/LZ78 i konkurencyjne wobec wszystkich, z wyjątkiem najlepszych, produktów z rodziny PPM
kompresory statystyczne.

Kompresja jest zawsze wykonywana, nawet jeśli skompresowany plik jest nieco większy niż
oryginalny. Najgorszy przypadek rozwinięcia dotyczy plików o zerowej długości, które rozszerzają się do czternastu
bajty. Losowe dane (w tym dane wyjściowe większości kompresorów plików) są kodowane za pomocą
asymptotyczna ekspansja około 0.5%.

Opcje wiersza poleceń są celowo bardzo podobne do tych z bzip2 i gzip, ale
nie są identyczne.

WEZWANIE


Domyślnym trybem działania jest kompresja. Jeśli narzędzie zostanie wywołane jako lbunzip2 or
bunzip2, tryb zostaje przełączony na dekompresyjny. Wywołanie narzędzia jako lbzcat or bzcat
wybiera dekompresję, przy czym zdekompresowany strumień bajtów jest zapisywany na standardowe wyjście.

OPCJE


-n WTR
Ustaw liczbę wątków (de)kompresora na WTR. Jeśli ta opcja nie jest
określony, lbzip2 próbuje zapytać system o liczbę procesorów online (jeśli
obsługuje to zarówno środowisko kompilacji, jak i środowisko wykonawcze), lub
kończy działanie z błędem (jeśli nie można określić liczby procesorów w trybie online).

-k, --trzymać
Nie usuwaj FILE operandy po udanej (de)kompresji. Otwórz zwykłe wejście
pliki z więcej niż jednym łączem.

-c, -- stdout
Zapisz dane wyjściowe na standardowe wyjście, nawet jeśli FILE operandy są obecne. Oznacza -k
i wyklucza -t.

-t, --test
Testuj dekompresję; odrzuć dane wyjściowe zamiast zapisywać je w plikach lub w standardzie
wyjście. Oznacza -k i wyklucza -c. Mniej więcej równoznaczne z przejściem -c i
przekierowywanie standardowego wyjścia do zasobnika bitów.

-d, --rozprężać
Wymuś dekompresję w trybie działania wybranym w nazwie wywołania.

-z, --Kompresja
Wymuś kompresję w trybie działania wybranym przez nazwę wywołania.

-1 .. -9
Ustaw rozmiar bloku kompresji na 100 KB... 900 KB, w przyrostach co 100 KB. Ignorowane podczas
dekompresja. Zobacz także sekcję ROZMIAR BLOKU poniżej.

--szybki Alias ​​dla -1.

--Najlepsza Alias ​​dla -9. To jest ustawienie domyślne.

-f, --siła
Otwórz niestandardowe pliki wejściowe. Otwórz pliki wejściowe z więcej niż jednym linkiem, psując się
linki kiedy -k nie jest dodatkowo określone. Spróbuj wcześniej usunąć każdy plik wyjściowy
otwierając to. Domyślnie lbzip2 nie zastąpi istniejących plików; Jeśli tego chcesz
się wydarzyć, powinieneś to określić -f. Jeśli -c i -d są również podane, nie odrzucaj plików
nie w formacie bzip2, po prostu skopiuj je bez zmian; bez -f lbzip2 Zatrzymałby się
po osiągnięciu pliku, który nie jest w formacie bzip2.

-s, --mały
Zmniejsz zużycie pamięci kosztem wydajności.

-u, --sekwencyjny
Wykonaj sekwencyjne dzielenie bloków wejściowych. Może to poprawić współczynnik kompresji i
zmniejszy użycie procesora, ale pogorszy skalowalność.

-v, --gadatliwy
Bądź bardziej gadatliwy. Wydrukuj bardziej szczegółowe informacje o postępie (de)kompresji do pliku
błąd standardowy: przed przetworzeniem każdego pliku wydrukuj komunikat zawierający nazwy
pliki wejściowe i wyjściowe; podczas (de)kompresji wydrukuj przybliżony procent
kompletność i szacowany czas przybycia (tylko jeśli podłączony jest błąd standardowy
terminal); po przetworzeniu każdego pliku wyświetli komunikat pokazujący stopień kompresji,
oszczędność miejsca, całkowity czas kompresji (czas ściany) i średnia prędkość (de)kompresji
(bajty zwykłych danych przetwarzanych na sekundę).

-S Drukuj statystyki zmiennej warunku z błędem standardowym dla każdego zakończonego zadania
Operacja (de)kompresji. Przydatne w profilowaniu.

-q, --cichy, --powtarzane-szybkie, --powtarzane-najlepsze, --wykładniczy
Zaakceptowano ze względu na kompatybilność z bzip2, w przeciwnym razie ignorowane.

-h, --help
Wydrukuj pomoc dotyczącą użycia wiersza poleceń na standardowym wyjściu i pomyślnie zakończ działanie.

-L, --licencja, -V, --wersja
Wydrukuj informacje o licencji i wersji na standardowe wyjście i pomyślnie wyjdź.

ŚRODOWISKO


LBZIP2, bzip2, bzip
Przed analizą wiersza poleceń lbzip2 wstawia zawartość tych zmiennych do
w określonej kolejności, pomiędzy nazwą wywołania a resztą wiersza poleceń.
Tokeny oddzielane są spacjami i tabulatorami, przed którymi nie można uciec.

OPERANDY


FILE Określ pliki do skompresowania lub dekompresji.

FILEy z . Bz2, .tbz, .tbz2 i .tz2 przyrostki nazw zostaną pominięte, kiedy
ściskanie. Podczas dekompresji, . Bz2 przyrostki zostaną usunięte z nazw plików wyjściowych;
.tbz, .tbz2 i .tz2 przyrostki zostaną zastąpione przez .smoła; inne nazwy plików będą
z przyrostkiem .na zewnątrz. Jeżeli INT or TERM sygnał jest dostarczany do lbzip2, potem to
usuwa aktualnie otwarty zwykły plik wyjściowy przed wyjściem.

Jeśli nie podano PLIKU, lbzip2 działa jak filtr, przetwarzając standardowe wejście
standardowe wyjście. W tym przypadku, lbzip2 odmówi zapisu skompresowanego wyjścia do pliku a
terminal (lub odczytaj skompresowane dane wejściowe z terminala), ponieważ byłoby to całkowicie
niezrozumiałe i dlatego bezsensowne.

EXIT STATUS


0 if lbzip2 kończy się pomyślnie. Zakłada to, że za każdym razem, gdy próbuje, lbzip2 nigdy
nie zapisuje do błędu standardowego.

1 if lbzip2 napotyka błąd krytyczny.

4 if lbzip2 generuje ostrzeżenia bez napotkania błędu krytycznego. To zakłada, że
za każdym razem, gdy próbuje, lbzip2 nigdy nie zawodzi w zapisie do standardowego błędu.

SYGNALIZACJA, SIGXFSZ
if lbzip2 zamierza wyjść ze statusem 1 z powodu jakiegokolwiek błędu krytycznego, ale dowolnego takiego sygnału
z odziedziczonym SIG_DFL akcja została wygenerowana dla lbzip2 wcześniej, zatem lbzip2
kończy się jednym ze wspomnianych sygnałów po oczyszczeniu wszelkich przerwanych wyjść
plik.

SIGABRT
jeśli asercja w czasie wykonywania nie powiedzie się (tj lbzip2 wykrywa błąd sam w sobie). Miejmy nadzieję
ktokolwiek skompilował twój plik binarny, nie był na tyle odważny, aby to zrobić #definiować NEBUG.

SIGINT, SIGTERM
lbzip2 przechwytuje te sygnały, dzięki czemu może usunąć przerwany plik wyjściowy. W
takie przypadki, lbzip2 wychodzi poprzez ponowne podniesienie (jednego z) odebranych sygnałów.

BLOK ROZMIAR


lbzip2 kompresuje duże pliki w blokach. Może działać w różnych rozmiarach bloków, począwszy od
od 100 tys. do 900 tys. w krokach co 100 tys. i przydziela tylko tyle pamięci, ile potrzeba. The
Rozmiar bloku wpływa zarówno na uzyskany stopień kompresji, jak i ilość potrzebnej pamięci
zarówno do kompresji, jak i dekompresji. Szybkość kompresji i dekompresji jest praktycznie
nie ma wpływu rozmiar bloku, pod warunkiem, że przetwarzany plik jest wystarczająco duży
rozdzielony pomiędzy wszystkie wątki robocze.

Flagi -1 przez -9 określ rozmiar bloku na 100,000 900,000 bajtów do XNUMX XNUMX bajtów
(domyślnie). W czasie dekompresji rozmiar bloku używany do kompresji wynosi
odczytać ze skompresowanego pliku — flagi -1 do -9 są nieistotne i dlatego ignorowane
podczas dekompresji.

Większe rozmiary bloków dają szybko malejące zyski krańcowe; większość kompresji
pochodzi z pierwszych dwustu lub trzystu tysięcy wielkości bloku, o czym warto pamiętać
podczas korzystania z lbzip2 na małych maszynach. Ważne jest również, aby docenić, że
wymagania dotyczące pamięci dekompresyjnej są ustalane w czasie kompresji poprzez wybór rozmiaru bloku.
Ogólnie rzecz biorąc, powinieneś spróbować użyć największego rozmiaru bloku, na jaki pozwalają ograniczenia pamięci.

Kolejna istotna kwestia dotyczy małych plików. Z założenia tylko jeden z lbzip2pracownik
wątki mogą pracować w jednym bloku. Oznacza to, że jeśli liczba bloków w
skompresowany plik jest mniejszy niż liczba procesorów w trybie online, niż liczba wątków roboczych
pozostanie bezczynny przez cały czas. Kompresja małych plików o mniejszych rozmiarach bloków może
dlatego znacznie zwiększają prędkość zarówno kompresji, jak i dekompresji. Prędkość
różnica jest bardziej zauważalna w miarę wzrostu liczby rdzeni procesora.

BŁĄD OBSŁUGA


Radzenie sobie z warunkami błędów jest najmniej zadowalającym aspektem lbzip2. Polityka jest
aby spróbować pozostawić system plików w spójnym stanie, a następnie zakończ, nawet jeśli to oznacza inaczej
przetwarzanie niektórych plików wymienionych w wierszu poleceń.

„Stan spójny” oznacza, że ​​plik istnieje w postaci skompresowanej lub nieskompresowanej
formę, ale nie jedno i drugie. Sprowadza się to do reguły „usuń plik wyjściowy w przypadku błędu
wystąpi warunek, pozostawiając dane wejściowe nienaruszone”. Pliki wejściowe są usuwane tylko wtedy, gdy jest to możliwe
całkiem pewien, że plik wyjściowy został pomyślnie zapisany i zamknięty.

MATERIAŁY PRZYDZIAŁ


lbzip2 do działania potrzebuje różnego rodzaju zasobów systemowych. Należą do nich pamięć, wątki,
muteksy i zmienne warunkowe. Polityka polega na tym, aby po prostu zrezygnować z alokacji zasobów
wystąpi awaria.

Zużycie zasobów rośnie liniowo wraz z liczbą wątków roboczych. Jeśli lbzip2 kończy się niepowodzeniem, ponieważ
W przypadku braku niektórych zasobów pomocne może być zmniejszenie liczby wątków roboczych. To byłby
możliwe dla lbzip2 aby spróbować zmniejszyć liczbę wątków roboczych (a tym samym Resource
zużycia) lub przejść do kolejnych plików w nadziei, że niektórzy będą potrzebować mniej
zasobów, ale komplikacje z tym związane wydają się większym problemem, niż są warte.

USZKODZONY AKTA


lbzip2 próbuje kompresować dane, wykonując na nich kilka nietrywialnych transformacji.
Każda kompresja pliku zakłada, że ​​skompresowany plik może być
zdekompresowany w celu odtworzenia oryginału. Włożono wiele wysiłku w projektowanie, kodowanie i testowanie
aby zapewnić prawidłowe działanie tego programu. Jednak złożoność
algorytmy, a w szczególności obecność różnych specjalnych przypadków w kodzie, który
występują z bardzo niskim, ale niezerowym prawdopodobieństwem, dlatego bardzo trudno jest je wykluczyć
możliwość pozostania błędów w programie. Nie oznacza to, że ten program taki jest
z natury niewiarygodne. Rzeczywiście, mam wielką nadzieję, że jest odwrotnie... lbzip2 został
starannie skonstruowany i szeroko przetestowany.

Jako samokontrola dla Twojej ochrony, lbzip2 używa 32-bitowych CRC, aby upewnić się, że
zdekompresowana wersja pliku jest identyczna z oryginałem. To chroni przed
uszkodzenie skompresowanych danych oraz przed nieodkrytymi błędami w lbzip2 (miejmy nadzieję
mało prawdopodobny). Szanse na niewykrycie uszkodzenia danych są mikroskopijne, około jednego
szansa w czterech miliardach na każdy przetworzony plik. Pamiętaj jednak, że sprawdzanie ma miejsce
po dekompresji, więc może jedynie powiedzieć, że coś jest nie tak.

CRC mogą wykryć jedynie uszkodzone pliki, nie pomogą w odzyskaniu oryginału,
nieskompresowane dane. Jednakże, ze względu na blokowy charakter algorytmu kompresji,
może być możliwe odzyskanie niektórych części uszkodzonego pliku, nawet jeśli niektóre bloki tak
zniszczony.

Użyj lbzip2 online, korzystając z usług onworks.net



Najnowsze programy online dla systemów Linux i Windows