1 Ostatnio edytowany przez drac030 (2005-10-21 00:13:59)

Witam

http://drac030.krap.pl/tar.arc

Program pod SpartaDOS (testowałem pod SpartaDOS X i SpartaDOS 3.2d) do archiwizacji w formacie zgodnym z unixowym programem tar. Napisałem go głównie do backupowania danych z twardziela atarynki na kompie z Unixem. Do tego samego celu służy HDSC, ale HDSC kopiuje całe dyski sektor po sektorze, a nie ma większego sensu przesyłać po SIO 16 MB danych, gdy do zarchiwizowania mamy np. 1 MB.

Mozna tez oczywiście rozpakować archiwum stworzone pod Unixem, tylko żeby ścieżki zapisane w archiwum nie miały więcej niż 64 znaki, a nazwy plików ponad 11 znaków, bo będą się cuda działy.

Instrukcja:

1) tworzenie archiwum:

tar -cv foo plik1 plik2 katalog1> katalog2>*.src

Tworzy archiwum pod nazwą foo.tar wrzucając doń pliki o nazwach 'plik1' i 'plik2', wszystkie pliki i katalogi (całe drzewo) znajdujące się w katalogu 'katalog1' oraz pliki *.src (plus wszystkie katalogi) znajdujące się w katalogu 'katalog2'. Dla tych, co się nigdy nie zetknęli z unixem i tarem: tar niczego nie kompresuje, tworzy tylko archiwum (nieskompresowane). Dlatego proszę się nie dziwić, jeśli archiwum wyjdzie dłuższe niż zawarte w nim pliki :) gzipa do pary może jeszcze kiedyś ktoś popełni ...

2) rozpakowywanie archiwum:

tar -xv foo
tar -xv foo *.src
tar -xv foo siala>baba>mak>*.src

W pierwszym przykładzie rozpakowuje się całość do katalogu bieżącego. W drugim tak samo do katalogu bieżącego wypakowywane są pliki z rozszerzeniem *.src. W trzecim przykładzie w katalogu bieżącym tworzone są katalogi siala>baba>mak>, a do nich wypakowywane są pliki z rozszerzeniem *.src. Oprócz plików program odpakowuje też wszystkie katalogi (odtwarza całe drzewo), co jest pewnym mankamentem, który może kiedyś poprawię ... (EDIT: poprawiłem, wersja 1.1 juz odpakowuje tylko te katalogi, w których sa pliki wybrane przez maskę).

3) przeglądanie archiwum:

tar -tv foo
tar -tv foo *.src

Listuje na ekranie zawartość archiwum albo całą (pierwszy przykład) albo tylko pliki zgodne z podaną maską. Nie są listowane katalogi, jeśli nie są zgodne z podaną maską. Listing podaje zawsze całą ścieżkę do pliku, a poza tym czas i datę modyfikacji tudzież długość lub ewentualnie typ. Pominięcie 'v' w opcjach skraca listing do samych nazw plików (razem ze ścieżkami).

KMK
? HEX$(6670358)

2

łoł - czy to wersja na 6502? - czy da się to opcjonalnie dopalić na 16 bit ?

Kontakt: pin@usdk.pl

3

brawo draco, kawal dobrej roboty.

4 Ostatnio edytowany przez drac030 (2005-10-15 03:02:34)

Pin napisał/a:

łoł - czy to wersja na 6502? - czy da się to opcjonalnie dopalić na 16 bit ?

Tak, to jest wersja na 6502. Rzeczy, które ten program robi, są na tyle proste, że w zasadzie nie ma co dopalać. Aha, w zasadzie nie ma ograniczeń co do wielkości archiwizowanego drzewa katalogów - to znaczy są, ale i tak kilkakrotnie przekraczają możliwości SpartaDOS-u: przepełnienie stosu nastąpiłoby po zagłębieniu się do ponad 128 poziomów podkatalogów, podczas gdy pod SpartaDOS-em w zasadzie chyba nie da się przekroczyć 32 poziomów.

mikey napisał/a:

brawo draco, kawal dobrej roboty.

Dzięki :)

KMK
? HEX$(6670358)

5

No to teraz jeszcze gzip lub bzip i bedzie mozna sobie zrobic "gzip -c plik.tgz | tar xf -"  no chyba ze zostala zaimplementowana opcja -x

6 Ostatnio edytowany przez Lizard (2005-10-15 19:18:49)

drac030 napisał/a:

1) tworzenie archiwum:

tar -cv foo plik1 plik2 katalog1> katalog2>*.src

2) rozpakowywanie archiwum:

tar -xv foo
tar -xv foo *.src
tar -xv foo siala>baba>mak>*.src

3) przeglądanie archiwum:

tar -tv foo
tar -tv foo *.src

To jakaś zmodyfikowana wersja, chyba? ;) Przed nazwą archiwum normalnie jest -f:

tar -cf foo plik1 plik2 katalog1> katalog2>*.src

tar -xf foo
tar -xf foo *.src
tar -xf foo siala>baba>mak>*.src

tar -tf foo
tar -tf foo *.src

-v włącza efekty vizualne. ;)

Zawsze mam rację, tylko nikt mnie nie słucha.

7

a może obsługa 7zip ;-) ?

STYMulator JIL ST YM2149 mjuz:k @ gnu/linux
SIUP (SIo2Usb2Pc) - SIO2PC USB Edition
PIN ready logo
3M / InD: ... na kasetach były zabezpieczenia w postaci tzw. "mikropierdnięcie" ...

8

lizard: dlaczego zmodyfikowana? tar bez -f operuje na tasmie a nie na pliku po prostu :)

9

Aż tak się nie znam, ale czy nie wypadałoby tara poinformować, gdzie się ta taśma znajduje? ;)

tar (GNU tar) 1.15.1 bez -f wywala wynik na standardowe wyjście. Oczywiście w przypadku Atari można parametr -f olać i przyjąć, że to co znajduje sie za opcjami jest nazwą archiwum, co jak widzę zostało zrobione.

Od razu wishlist: ;)
- dodawanie plików do archiwum (-r)
- usuwanie plików (--delete, dla ułatwienia może być -d, bo chyba nikt nie będzie korzystał z porównań)
- uaktualnianie (-u)
- odświeżanie (-f)

Różnice pomiędzy -u i -f takie same jak w przypadku ARC z SDX.

Zawsze mam rację, tylko nikt mnie nie słucha.

10

Lizard napisał/a:

Aż tak się nie znam, ale czy nie wypadałoby tara poinformować, gdzie się ta taśma znajduje? ;)

Niekoniecznie :)

GNU tar  jako difolt przyjmuje '-' czyli stdin/stdout
Klasyczny (BSD) tar natomiast /dev/sa0 czyli tasma :)

Poniewaz nie podano czy atari-tar :) korzysta z BSD czy GNU 'przyzwyczajen' - twierdzenie o 'zmodyfikowanej' wersji jest nieuprawnione ;)
ps. aha zeby nie bylo - lubie linuksa bardzo ale GNU programow niektorych i konwencji juz niekoniecznie :)

11

A będzie można tar-ować na taśmę? Np. tar -cv /dev/xc12 plik1 plik2 ;)

To był dżouk oczywiście :) Jakby jeszcze dało się jednocześnie w arca wpuszczać to by był max wypasi0r.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

12

Zawsze se mozesz napisac BATa:

tar -cv %1 %2 %3 %4 %5 %6 %7 %8 %9
arc a %1.arc %1.tar

Sorki jesli cos pomylilem, ale nie znam sie na piosaniu BATow pod Sparte...

13 Ostatnio edytowany przez drac030 (2005-10-16 10:40:47)

Lizard, dodanie -f działającego tak jak na unixie, to znaczy, żeby bez tej opcji program nie przyjmował nazwy archiwum, ale od razu otwierał urządzenie "C:", to minuta osiem. Tylko od kiedy tak zatęskniłeś do magnetofonu i kto tego będzie używał w ogóle?

Delete, update itd może się doda w dalszych wersjach.

Co do kompresowania plików przez ARC: ARC, ten który jest zaszyty w SpartaDOS X, niestety nie może kompresować długich plików! Nie wiem dokładnie, przy jakiej długości to występuje (ca 100k może), ale ARC w pewnym momencie zaczyna marudzić no i archiwum jest potem skopane.

Lizard napisał/a:

-v włącza efekty vizualne

No tu też przecież, prócz -t, gdzie efekty wizualne są zawsze, tylko -v je zmienia.

KMK
? HEX$(6670358)

14

lewiS napisał/a:

Zawsze se mozesz napisac BATa:

tar -cv %1 %2 %3 %4 %5 %6 %7 %8 %9
arc a %1.arc %1.tar

To jeszcze przydłoby się dołożyć do command.com polecenie shift, przesuwające parametry. Zniknęłoby wtedy ograniczenie ich ilości. :)

drac030 napisał/a:

Tylko od kiedy tak zatęskniłeś do magnetofonu i kto tego będzie używał w ogóle?

Nigdy takowego nie używałem, więc nie mam do czego tęsknić. Ale mając obsługę pamięci taśmowej zawsze można przyszpanować przed jakimś starym geekiem-uniksowcem. ;)

drac030 napisał/a:

Co do kompresowania plików przez ARC: ARC, ten który jest zaszyty w SpartaDOS X, niestety nie może kompresować długich plików! Nie wiem dokładnie, przy jakiej długości to występuje (ca 100k może)

Wystarczy chyba, by plik był dłuższy niewiele ponad 64 kB i już ARC ze Sparty sobie nie radzi. Ale za to SuperARC kompresuje lepiej i obsługuje nawet linię komend. :D

drac030 napisał/a:
Lizard napisał/a:

-v włącza efekty vizualne

No tu też przecież, prócz -t, gdzie efekty wizualne są zawsze, tylko -v je zmienia.

Jasne, tylko w każdym przykładzie dodajesz to -v, jakby to było niezbędne do życia. Ja, na przykład, nigdy z tej opcji nie korzystam. :P W "mondrych" publikacjach teksty typu "Rozpakowujemy archiwum poleceniem tar xzvf blabla.tar.gz" zawsze wzbudzały we mnie wstręt. ;)

Zawsze mam rację, tylko nikt mnie nie słucha.

15

64k chyba jeszcze łapie, natomiast problemy pojawiają się gdzieś pomiędzy 64k a 100k. Trzeba byłoby to sprawdzić. A SuperARC może sobie radzi, a może po prostu nie wypisuje komunikatu błędu.

Co do -v, przy pakowaniu i rozpakowywaniu jest przydatna o tyle, że przynajmniej widać, co program robi. Oczywiście nie jest użyteczna, gdy operator jest nieomylny :P

A przykłady dałem z 'v' z tego powodu, żeby pokazać, że tak można (co znaczy 'v' każdy się dowie z tego, co program wyświetla, kiedy jest wywołany bez parametrów), oraz po to, żeby widać było, że opcje można grupować - to znaczy zamiast "-x -v -k -m" można dać "-xvkm" :)

KMK
? HEX$(6670358)

16

drac030 napisał/a:

SuperARC może sobie radzi, a może po prostu nie wypisuje komunikatu błędu.

Radzi sobie, rzadzi. Już nim kiedyś pakowałem zbiór sambli, gdzie jeden plik w porywach zajmował 2-3 MB (legendarna Tina Turner i Depeche Mode - pierwsze ofiary D2D :D ) i z rozpakowaniem nie było problemów.

drac030 napisał/a:

Oczywiście nie jest użyteczna, gdy operator jest nieomylny :P

Dzięki za uznanie. ;)

drac030 napisał/a:

oraz po to, żeby widać było, że opcje można grupować - to znaczy zamiast "-x -v -k -m" można dać "-xvkm" :)

Ho, ho, ho, grupować. Wszystkie programy pod SDX pozwalają na grupowanie parametrów. Już się tak nie lansuj. :P

Zawsze mam rację, tylko nikt mnie nie słucha.

17

Lizard napisał/a:

Wszystkie programy pod SDX pozwalają na grupowanie parametrów. Już się tak nie lansuj. :P

Pozwalają, tylko co z tego? Ten konkretny program nie używa biblioteki SDX do parsowania parametrów, więc wcale nie musi rozpoznawać ich grup :P

KMK
? HEX$(6670358)

18

a po kiego '-' przed parametrami?
jakis parametr i tak musi byc, wiec mozna przyjac ze pierwszy parametr to grupa
tzw. przelacznikow...

btw. gnu tar dziala i z i bez '-' ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

19

Tak jest łatwiej robić parsing całości linii komend.

KMK
? HEX$(6670358)

20

Poza tym, pozwala w przypadku co bardziej inteligentnych parserów na dowolną kolejność parametrów, np: tar blabla.tar -c kat\*.*

Zawsze mam rację, tylko nikt mnie nie słucha.

21

lzd: otóż to. :)

do untar-owania, ungz-owania, i untgz-owania jest juz xunzip 2.0 ale przed ogloszeniem wynikow abbuc compo nie moge go udostepnic.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

22

Epij - a buc_koppozery nie udostępniają softu przed wynikami ?? - nie sprawdzałem i nie wiem, więc pytam. Podżuć mi utilz do selfextractora do zipa dla atarek, bo do instalki dekstopa bedzie konieczne :). Poza tym - są ziemniaki przy kasowaniu ikon; kurna - nie moge buga zniwelować. W najgorszym wypadku wpadne z tym w niedziele.

a tak ogólnie - to na małej atarce to chyba tylko RAR'a nie ma ?? :):P

Kontakt: pin@usdk.pl

23

Cięzko byłoby zaimplementować 4 megowy słownik i 128 MB pamięci dla archiwów skompresowanych z wykorzystaniem tej ilości. :p

Zawsze mam rację, tylko nikt mnie nie słucha.

24 Ostatnio edytowany przez drac030 (2005-10-21 00:16:50)

Nowa wersja programu (SpartaDOS TAR v.1.1) do pobrania spod adresu jak wyżej. No i jeszcze jedno: MEMLO max. $2000. Wersję, która się relokuje zrobię następnym razem :)

KMK
? HEX$(6670358)

25 Ostatnio edytowany przez epi (2005-10-24 07:04:29)

Pin napisał/a:

Podżuć mi utilz do selfextractora do zipa dla atarek, bo do instalki dekstopa bedzie konieczne :).

Zajebiste. :)


Zlikwiduj ziemniaki, buraki, i inne bulwy, to wtedy porozmawiamy o podRZucaniu. :)

Aha: nie ma też zipa i gza.
(a komodziarze zipa ponoć mają - i co?)

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.