Aktualności Forum Giełda Sprzęt Programy Strefa Gier Graffiti Publicystyka Teleport
  • LhA dla początkujących

21.08.2007 22:20, autor: APC74
odsłon: 10126, wersja PDF

LhA to nadal najpopularniejszy archiwizer na platformie amigowej. Program przez lata przechodził z rąk do rąk, od jednego programisty do drugiego.

Historia LhA zaczęła się, gdy student pierwszego roku Linköping Institute of Technology, Stefan Boberg doszedł do wniosku, że Amiga potrzebuje jakiegoś porządnego programu do archiwizacji danych (a jemu przydałoby się trochę pieniędzy). Za czasów Boberga (lata 1991-1994) LhA rozwinął się w potężne, bogate w opcje narzędzie. Po zrezygnowaniu przez Boberga z rozwoju LhA program przeleżał kilka lat "w szufladzie" aż do roku 1998, gdy to zajęli się nim Jim Cooper i David Tritscher. W 1999 roku nowi autorzy zaprzestali rozwoju LhA i program musiał czekać znowu kilka lat (do 2004 roku), by ktoś się nim zajął. Aktualnie rozwojem programu zajmuje się Sven Otteman.

Najnowsza wersja LhA (aktualnie z marca 2006) znajduje się na Aminecie i jest spakowana LhA. Co zrobić, gdy się nie ma możliwości rozpakowania pobranego archiwum, bo nie ma się ani LhA, ani LZX, ani też żadnej innej możliwości rozpakowywania archiwów LhA? Należy pobrać z Aminetu plik o nazwie LhA_e138.run. Jest to samorozpakowujące się archiwum, które zawiera starszą wersję LhA (autorstwa Stefana Boberga) i za pomocą tej wersji rozpakować archiwum z najnowszą wersją. W poniższym tekście postaram się przybliżyć najważniejsze komendy i opcje programu, z których korzystam na codzień.

1. Składnia

LhA [-opcje] <ścieżka dostępu i nazwa archiwum> [plik(i)]

np. LhA -r -e a RAM:arc DH1:t/
spakuje wszystkie pliki, podkatalogi (opcja -r) oraz puste podkatalogi (opcja -e) z katalogu DH1:t/. W Ram Dysku zostanie utworzone archiwum o nazwie arc.lha (końcówka dodawana automatycznie przez LhA).

2. Komendy (te najważniejsze)

a - Dodanie pliku (plików) do archiwum. Jeżeli archiwum nie istnieje, to zostanie utworzone. Nie można dodawać do istniejącego archiwum plików, które się w nim już znajdują (w takim przypadku pliki zostaną zignorowane). Przykład:

LhA a RAM:arc DH1:t/
zawartość katalogu t na partycji DH1: zostanie skompresowana do archiwum a nazwie arc.lha w Ram Dysku.

t - Test archiwum. Sprawdza podane archiwum pod kątem poprawności zawartych w nim plików (czy nie są uszkodzone).

LhA t RAM:arc
sprawdzi, czy pliki w archiwum arc.lha nie są uszkodzone. LhA sprawdza sumy kontrolne poszczególnych plików i jeżeli wszystko jest w porządku, to wyświetla na koniec stosowny komunikat - np. dla archiwum składającego się z 8 plików będzie to:
8 files tested, all files OK.
Jeżeli natrafi na błąd wyświetli komunikat (zakładając, że uszkodzony jest pierwszy plik):
1 file tested, 1 file failed.

v - Wyświetlenie zawartości archiwum (podawane są: rozmiar pliku przed i po spakowaniu, procentowa wartość upakowania pliku, data, czas, nazwa pliku wraz ze ścieżką dostępu). Przykład:

LhA v RAM:arc
wyświetli zawartość archiwum arc.lha znajdującego się w Ram Dysku

x - Rozpakowanie plików z zachowaniem ścieżek dostępu (tworzenie katalogów).

LhA x RAM:arc DH1:t/
wypakuje pliki z archiwum arc.lha, znajdującego się w Ram Dysku do katalogu T na partycji DH1:. Jeżeli katalog T nie istnieje to zostanie utworzony. LhA utworzy również podkatalogi, o ile takie występują w archiwum.

e - Komenda podobna w działaniu do komendy x - różni się tym, że umożliwia rozpakowanie plików z archiwum bez zachowania struktury katalogów (katalogi nie są tworzone).

LhA -x0 e RAM:arc DH1:t/
rozpakuje wszystkie pliki z archiwum bez zachowania struktury katalogów - wszystkie pliki będą w katalogu T. Opcja -x0 wyłącza możliwość tworzenia podkatalogów.

3. Opcje

Pamiętaj by poprzedzić je myślnikiem. LhA rozróżnia wielkość liter przy opcjach. Opcje można łączyć lub pisać rozdzielnie. Na przykład zapis -req jest równoznaczny z -r -e -q. Polecam jednak pisanie rozdzielne, ze względu na przejrzystość zapisu.

-b - Tej opcji można używać ze wszystkimi komendami. Przydzielenie bufora pamięci na operacje I/O dla LhA (oczywiście im większy tym lepiej) podaje się w kB np. -b64 przydzieli 64 kB bufor I/O. Rozmiar buforu zapisu/odczytu możesz ustawić w zakresie od 8 kB do 64 kB. Domyślną wartością, przyjmowaną przez LhA, gdy nie podasz tego parametru, jest 32 kB. Zwiększenie bufora przyspiesza pracę LhA. Przykład wykorzystania opcji:

LhA -b64 a RAM:arc DH1:T/
spakuje wszystkie pliki znajdujące się w katalogu DH1:t/ z wykorzystaniem 64 kB bufora.

LhA -b64 x RAM:arc DH1:T/
rozpakuje wszystkie pliki z archiwum arc.lha, znajdującego się w RAM: do katalogu T na partycji DH1: oczywiście z wykorzystaniem 64 kB bufora.

-Dx - Opcja bardziej rozrywkowa. Działa ze wszystkimi komendami. Opcja ta powoduje zmianę wskaźnika postępu pracy. Mamy do wyboru 5 wersji, x w opcji -Dx oznacza cyfry od 0 do 4.
0 - ustawienie domyślne (te które oglądasz zazwyczaj, patrząc od końca mamy nazwę pakowanego pliku, jego rozmiar i cyfrę określającą ile LhA pozostało do zrobienia).
1 - w trakcie pracy pokazywana jest tylko obracająca się kreska.
2 - Postępy są pokazywane jako wskaźnik procentowy.
3 - Wskaźnik liniowy ze znaków ASCII zapełniający się na czarno.
4 - Wskaźnik graficzny.

-e - Opcja działa wyłącznie przy tworzeniu archiwum. Archiwizacja pustych podkatalogów (standardowo LhA pomija puste podkatalogi i nie przyłącza ich do archiwum). Przydatne, gdy chcesz zachować pełną strukturę katalogów. Stosuje się razem z opcją -r.

-F - Można stosować ze wszystkimi komendami. Szybsza metoda wyświetlania operacji. Wszystkie komentarze wyświetlane są w jednej linii, bez przewijania. Odrobinę przyspiesza archiwizację/rozpakowywanie.

-k - Ze wszystkimi komendami. Bardzo pomocna przy rozpakowywaniu plików z uszkodzonych archiwów. Przy rozpakowywaniu uszkodzonego archiwum należy zmniejszyć bufor dla operacji I/O (opcja -b) do wartości minimalnej, czyli ustawić -b8 (8KB). Składnia powinna wyglądać następująco:

LhA -k -b8 x DH1:t/archiwum.lha DH1:t/
dzięki małemu buforowi i opcji -k czasami udaje się odzyskać pliki (lub ich fragmenty).

-q - Ze wszystkimi komendami. "Ucisza" LhA. Archiwizer nie będzie wysyłał żadnych komunikatów na temat postępu prac itp. do okna.

LhA -q x DH1:t/archiwum.lha DH1:t/
rozpakuje zawartość archiwum bez wyświetlania żadnych komunikatów.

-Qh - Wykorzystywana przy tworzeniu archiwum. Ustawia rozmiar bufora Huffmana (przedział od 4 do 64 kB, domyślna wartość - 16 kB). Bufor Huffmana ma zazwyczaj niewielkie znaczenie dla wydajności pakowania, jednak przy pakowaniu plików tekstowych dobrze jest go ustawić na 64 kB, zaś pliki "binarne" lepiej pakują się przy domyślnym buforze.

LhA -Qh64 a RAM:arc DH1:T/
Spakuje wszystkie pliki znajdujące się w katalogu DH1:t/ z wykorzystaniem 64 kB bufora.

-r - Opcja działa wyłącznie przy tworzeniu archiwum. Pakowanie do archiwum nie tylko plików z podanego katalogu, ale również plików z podkatalogów znajdujących się w tym katalogu. Bez tej opcji LhA doda pliki wyłącznie ze wskazanego katalogu, pliki znajdujące się w podkatalogach zostaną pominięte.

LhA -r a RAM:arc DH1:T/

-x - Ze wszystkimi komendami. Po użyciu tej opcji program zapamiętuje ścieżki dostępu do każdego pakowanego pliku lub używa już zapamiętanej (w przypadku rozpakowywania) tworząc odpowiednie katalogi. Jeżeli w trakcie tworzenia archiwum użyto opcji -r to nie trzeba jej podawać - opcja -x jest automatycznie włączana przez LhA. Działanie tej opcji można modyfikować dodając zaraz za x cyfrę:
-x0 - wyłącza zapamiętywanie w archiwum struktury katalogów, wykorzystywane z komendą e;
-x1 (lub samo -x) - domyślne działanie opisane wyżej;
-x2 - wykorzystywane przy rozpakowywaniu. Dziwna opcja, która wymaga by podać pełną ścieżkę dostępu do rozpakowywanego pliku, ale ignoruje ją w trakcie rozpakowywania. Jakoś nigdy nie udało mi się znaleźć dla niej zastosowania;
-x3 - wykorzystywane przy rozpakowywaniu, LhA używa pełnych ścieżek (zakłada podkatalogi), ale nie wymaga ich wpisywania w trakcie wybierania poszczególnych plików do rozpakowywania. Opcja przydatna w przypadku, gdy chcesz rozpakować kilka plików o tej samej nazwie, znajdujących się w różnych podkatalogach.

-w - Wykorzystywane przy tworzeniu, rozpakowywaniu, aktualizacji archiwum. Określa katalog roboczy dla LhA. Domyślnie LhA przy pakowaniu/rozpakowaniu plików korzysta z pamięci RAM. Dzięki tej opcji można pakować/rozpakowywać pliki znacznie przekraczające ilość dostępnej pamięci operacyjnej Amigi. Przykład:

LhA -wDH1: a DH2:archiwum.lha DH0:WIELKI_plik
w ten sposób spakujesz np. plik o rozmiarze 100 MB posiadając jedynie 2 MB RAM. Dzięki temu, że LhA założy "pamięć wirtualną" na partycji DH1: i nie będzie korzystać z pamięci operacyjnej.

-V - Ze wszystkimi komendami. Opcja nie wspierana przez najnowszą wersję LhA, jednak warta wspomnienia bo może w przyszłości powróci. Tworzenie wieloczęściowego archiwum, zazwyczaj wykorzystywana do tworzenia archiwum na kilku nośnikach, np. kopia dysku twardego na dyskietki, czy przeniesienie na dyskietkach pliku, który ma większy rozmiar niż może pomieścić dyskietka. Opcji należy użyć również w trakcie wypakowywania plików z wieloczęściowego archiwum. Można podać rozmiar tworzonego archiwum, lub skorzystać z automatu. Przy korzystaniu z tej opcji ważne jest, by nie podawać rozszerzenia (.lha) archiwum a jedynie samą jego nazwę. Przykład:

LhA -r -e -x -b64 -V50 a DF0:arc DH0:
spakuje zawartość dysku DH0: na dyskietki w archiwach o dług. 50 kB, trochę to bez sensu, ale można też użyć "autodetekcji" wolnego obszaru nośnika:

LhA -r -e -Va a DF0:arc DH0:
spakuje zawartość dysku DH0:, również zawartość podkatalogów i puste katalogi, z zachowaniem ścieżek dostępu do plików (opcje: -r -e i skoro użyliśmy opcji -r to domyślnie włączona jest przez LhA opcja -x), na dyskietki w archiwach o długości tak dużej jak to tylko możliwe (tzn. zapis do archiwum trwa tak długo dopóki nie skończy się wolne miejsce na dyskietce), dopiero wtedy zostaniesz poproszony o włożenie następnej dyskietki. Opcja bardzo przydatna przy dyskietkach częściowo zapełnionych (np. innymi archiwami) lub uszkodzonych i formatowanych pod AllowBadem, czy innym WorseFormatem.
Do rozpakowania archiwum używa się tej samej opcji (by poinformować LhA, że ma rozpakowywać z kilku plików, dyskietek itp.). Składnia komendy:

LhA -Va x DF0:arc DH0:
to polecenie rozpakuje archiwum arc.lha znajdujące się na dyskietce df0: a gdy to już zrobi poprosi o włożenie do napędu następnej dyskietki z plikiem arc.l01 itd. Powinieneś zwrócić szczególną uwagę na to, żeby podawać nazwę urządzenia (np. DF0:, DS0:, FS0:, PC0:...), a nie label (czyli nazwę dyskietki), gdyż LhA wymaga wtedy by wszystkie dyskietki miały taką samą nazwę (np. wszystkie musiałyby się nazywać Empty), co według mnie jest zbyt wielkim kłopotem.
LhA posiada pewien błąd przy tworzeniu wieloczęściowego archiwum. Polega on na tym, że nie potrafi utworzyć pierwszego archiwum, ja to obchodzę w ten sposób, że piszę krótki opis zawartości archiwum, zapisuję go pod nazwą ".displayme" i archiwizuję pod nazwą pierwszego archiwum. Dalej już wszystko idzie jak po maśle. Jeżeli zastanawiasz się dlaczego akurat taka nazwa dla pliku, to wyjaśniam, iż pliki o takiej nazwie są przez LhA wyświetlane w trakcie rozpakowywania (wyświetlane w oddzielnym oknie). Poza tym LhA posiada jeszcze jedno ograniczenie, archiwum może mieć maksymalnie 100 części (tzn. od arc.LhA, arc.l01 itd do arc.l99).

-z - Wykorzystywana przy tworzeniu archiwum. Dodaje pliki do archiwum bez ich kompresji.

-Z - Przy tworzeniu archiwum. Kompresuje archiwa - standardowo LhA nie pakuje obrazków formatu: .GIF i .JPEG oraz archiwów: .lzh, .LhA, .zoo, .zip, arj, .arc, .dms, .wrp, .lhw, .zap, .pak, .pp. Kompresowanie archiwum w trakcie dodawania go do innego archiwum mija się zazwyczaj z celem - zajmuje to tylko czas a zysk z tego żaden. Jedynym wyjątkiem jest operacja kompresowania archiwum stworzonego za pomocą opcji -z (czyli dodanie plików do archiwum bez kompresji).

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem