Aby rozwiązać ten problem, programiści opracowali algorytmy kompresji i narzędzia zdolne do kompresji danych w czasie rzeczywistym, zmniejszając rozmiar i wymaganą moc obliczeniową. Jednym z tych narzędzi jest Zstandard, powszechnie znany jako Zstd.
Zstd to darmowy algorytm kompresji w czasie rzeczywistym o otwartym kodzie źródłowym, opracowany przez Yanna Collect, pracownika Facebooka. Zstd jest bardzo szybki i oferuje doskonałe współczynniki kompresji. Jest to bezstratny algorytm kompresji napisany w C, ale ma implementacje API w innych popularnych językach programowania, takich jak Python, Java, C#, JavaScript i wielu innych. Zapewnia również funkcje kompresji i dekompresji w pamięci.
Aby sprawdzić, czy Zstd obsługuje żądany język, sprawdź zasób podany poniżej:
https://facebook.github.io/zstd/
Jeśli chcesz zapoznać się z informacjami porównawczymi dotyczącymi Zstd, skorzystaj z poniższego linku:
https://github.com/facebook/zstd
Ten samouczek pokaże Ci, jak skompilować i zainstalować narzędzie Zstd w systemie Linux, a następnie użyć go do kompresji i dekompresji danych.
Jak zainstalować Zstd
Aby używać Zstd, musimy go zainstalować, kompilując ze źródeł. W zależności od używanego systemu i konfiguracji może być konieczne zainstalowanie zależności i narzędzi, aby pomyślnie przeprowadzić kompilację.
Zacznij od aktualizacji systemu i zainstalowania GNU make za pomocą polecenia:
aktualizacja sudo apt-getsudo apt-get upgrade
sudo apt-get -y install build-essential wget tar
Po zainstalowaniu wszystkich narzędzi możemy pobrać pliki źródłowe i je skompilować. Zacznij od nawigowania tam, gdzie masz uprawnienia do czytania, pisania i wykonywania. ~/Pulpit
cd ~/PulpitNastępnie użyj wget, aby pobrać pliki do katalogu.
wget https://github.com/facebook/zstd/releases/download/v1.4.9/zstd-1.4.9.smoła.gzTeraz rozpakuj pobrany plik i przejdź do katalogu, używając poleceń jako:
smoła xvf zstd-1.4.9.smoła.gzcd zstd-1.4.9
Ostatnie kroki to zainstalowanie Zstd za pomocą make i make install w katalogu Zstd.
sudo zrobićsudo dokonać instalacji
Po pomyślnym zakończeniu kompilacji i instalacji możesz zacząć używać Zstd w swoim systemie do kompresji i dekompresji plików.
Jak korzystać z Zstd
Zstd w ogóle nie odbiega od popularnych metod kompresji i dekompresji. Chociaż podstawowa technologia i implementacja różnią się od innych narzędzi, kompresja pliku za pomocą Zstd jest podobna do składni tar i gzip.
Jak skompresować plik
Aby skompresować plik, wywołaj polecenie zstd, a następnie flagę -z, która mówi zstd, aby wykonał kompresję, a na końcu nazwę pliku do skompresowania.
Na przykład poniższe polecenie kompresuje plik kopii zapasowej systemu do formatu A .plik zst.
$ sudo zstd -z kopia zapasowa systemuDane wyjściowe polecenia, jak pokazano poniżej:
kopia zapasowa systemu :100.00% (1821109 => 1821164 bajtów, kopia zapasowa systemu.zst)$ ls kopia zapasowa systemu
Powinieneś zobaczyć plik z .zst rozszerzenie jako:
kopia zapasowa systemu.zstPo wykonaniu polecenia plik zostaje skompresowany i tworzy nazwę pliku .plik zst, który można rozpakować.
Skompresuj i usuń plik źródłowy
Jak widać z powyższego polecenia, plik źródłowy nie jest domyślnie usuwany po kompresji. Możesz określić, aby usunąć pliki źródłowe, używając flagi -rm:
$ sudo zstd -z --rm kopia zapasowa systemukopia zapasowa systemu :100.00% (1821109 => 1821164 bajtów, kopia zapasowa systemu.zst)
$ ls
kopia zapasowa systemu.zst
Określenie flagi -rm automatycznie usuwa plik źródłowy.
Uzyskaj informacje o pliku
Aby wyświetlić powiązane informacje o skompresowanym pliku Zstd, możesz użyć flagi -l, po której następuje nazwa pliku. Wyświetlane informacje obejmują rozmiar pliku, stopień kompresji i sumę kontrolną pliku
$ zstd -lv kopia zapasowa systemu.zst*** Interfejs wiersza poleceń zstd 64-bitowy v1.4.9, autorstwa Yanna Colleta ***
kopia zapasowa systemu.zst # Zstandardowe ramki: 1
Rozmiar okna: 1.74 MB (1821109 B)
Skompresowany rozmiar: 1.74 MB (1821164 B)
Rozpakowany rozmiar: 1.74 MB (1821109 B)
Stosunek: 1.0000
Sprawdź: XXH64
Określ poziom kompresji
Aby wyraźnie określić poziom kompresji, użyj - gdzie poziom jest wartością z zakresu 1 - 19. Domyślny poziom kompresji to 3. Możesz także odblokować wyższe poziomy kompresji, i.mi., poziom 20 - 22.
UWAGA: Im wyższy poziom kompresji, tym większe zużycie pamięci.
Na przykład, aby skompresować plik o poziomie kompresji 10, użyj polecenia:
zstd -z -10 --rm kopia zapasowa systemuOkreśl prędkość kompresji.
Zstd pozwala również ustawić prędkość kompresji w zakresie od 1 - do. Prędkość kompresji jest odwrotnie proporcjonalna do stopnia kompresji compression. Domyślna prędkość kompresji to 1, im wyższa wartość, tym większa prędkość kompresji.
Na przykład, aby użyć maksymalnej szybkości kompresji, użyj polecenia:
sudo zstd -z --fast=10 kopia zapasowa systemuOkreśl format kompresji
Możesz również określić format kompresji, który ma być używany, jeśli nie podoba ci się domyślna kompresja zst. Formaty obejmują zstd, gzip, xz, lzma i lz4.
Użyj flagi -format i określ format jako:
zstd -z --format=gzip kopia zapasowa systemuSkompresuj listę plików
Załóżmy, że masz listę plików, które chcesz skompresować jednocześnie all. Zstd pozwala na przekazanie pliku zawierającego listę plików i ich rekursywną kompresję.
Na przykład lista plików.txt zawierający pliki
/home/użytkownik/mysql-backup/kopie/konfiguracja
/home/Komputery/media
/sync/2021/użytkownicy
Po zapisaniu pliku możesz przekazać listę do Zstd ze wszystkimi innymi opcjami do wykonania na plikach.
sudo zstd -z -v --rm --filelist lista.tekstTo polecenie skompresuje wszystkie pliki określone w pliku tekstowym i usunie je po zakończeniu.
Rozpakuj plik
Aby zdekompresować plik, możesz użyć flagi -d z poleceniem zstd lub po prostu użyć polecenia unzstd, aby rozpakować.
Na przykład:
sudo unzstd kopia zapasowa systemu.zstsudo zstd -d kopia zapasowa systemu.zst
Sprawdź integralność pliku
Aby przetestować integralność skompresowanego pliku zst, użyj flagi -t, jak pokazano w poniższym poleceniu:
sudo zstd -t kopia zapasowa systemu.zstWniosek
Jak widać na przykładach, Zstd to potężny algorytm kompresji z licznymi przypadkami użycia. Aby dowiedzieć się więcej o tym, jak to działa i jego implementacji, sprawdź stronę man i eksperyment.
Dziękuje za przeczytanie.