585 lines
13 KiB
HTML
585 lines
13 KiB
HTML
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML><HEAD><TITLE>Man page of XXD</TITLE>
|
|
</HEAD><BODY>
|
|
<H1>XXD</H1>
|
|
Section: User Commands (1)<BR>Updated: Sierpień 1996<BR><A HREF="#index">Index</A>
|
|
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<A NAME="lbAB"> </A>
|
|
<H2>NAZWA</H2>
|
|
|
|
<I>xxd</I>
|
|
|
|
- zrzut pliku do hex lub odwrotnie
|
|
<A NAME="lbAC"> </A>
|
|
<H2>SYNOPSIS</H2>
|
|
|
|
<B>xxd</B>
|
|
|
|
-h[elp]
|
|
<BR>
|
|
|
|
<B>xxd</B>
|
|
|
|
[opcje] [plik_we [plik_wy]]
|
|
<BR>
|
|
|
|
<B>xxd</B>
|
|
|
|
-r[evert] [opcje] [plik_we [plik_wy]]
|
|
<A NAME="lbAD"> </A>
|
|
<H2>OPIS</H2>
|
|
|
|
<I>xxd</I>
|
|
|
|
tworzy zrzut heksowy podanego pliku lub standardowego wejścia.
|
|
Może także przetworzyć zrzut heksowy z powrotem do oryginalnej,
|
|
binarnej formy.
|
|
Podobnie jak
|
|
<B><A HREF="/cgi-bin/man/man2html?1+uuencode">uuencode</A></B>(1)
|
|
|
|
i
|
|
<B><A HREF="/cgi-bin/man/man2html?1+uudecode">uudecode</A></B>(1)
|
|
|
|
pozwala na przekazanie danych binarnych w bezpiecznej w poczcie formie
|
|
ASCII, ale ma zalety dekodowania na standardowe wyjście.
|
|
Ponadto można go użyć do binarnego łatania plików.
|
|
<A NAME="lbAE"> </A>
|
|
<H2>OPCJE</H2>
|
|
|
|
Jeśli nie podano
|
|
<I>plik_we</I>
|
|
|
|
xxd czyta ze standardowego wejścia.
|
|
Jeśli określono
|
|
<I>plik_we</I>
|
|
|
|
jako znak
|
|
`<B>-</B>'
|
|
|
|
wtedy dane wejściowe czytane są ze standardowego wejścia.
|
|
Jeśli nie podano
|
|
<I>plik_wy</I>
|
|
|
|
(lub podano jako
|
|
`<B>-</B>'
|
|
|
|
), wyniki są wysyłane na standardowe wyjście.
|
|
<P>
|
|
|
|
Pamiętaj, że użyty został "leniwy" parser, który nie sprawdza więcej
|
|
niż pierwszej litery opcji (o ile ta nie została obdarzona
|
|
parametrem). Spacje między jedno literowymi opcjami i ich parametrami
|
|
są opcjonalne. Parametry opcji mogą być określone w notacji dziesiętnej,
|
|
heksadecymalej lub oktalnej.
|
|
Stąd
|
|
<B>-c8</B>,
|
|
|
|
<B>-c 8</B>,
|
|
|
|
<B>-c 010</B>
|
|
|
|
i
|
|
<B>-cols 8</B>
|
|
|
|
są sobie równoważne.
|
|
<P>
|
|
|
|
<DL COMPACT>
|
|
<DT id="1"><I>-a</I> | <I>-autoskip</I>
|
|
|
|
<DD>
|
|
przełącza autoskip: pojedyncza '*' zastępuje linie nul. Domyślnie
|
|
wyłączone.
|
|
<DT id="2"><I>-b</I> | <I>-bits</I>
|
|
|
|
<DD>
|
|
Przełącza do zrzutu bitowego (cyfr binarnych) zamiast heksowego.
|
|
Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego
|
|
zrzutu heksowego. Każda linia jest poprzedzona przez
|
|
heksadecymalny numer linii a po nim jego reprezentacją w ascii (lub
|
|
ebcdic). Opcje linii poleceń -r, -p, -i nie działają w tym
|
|
trybie.
|
|
<DT id="3"><I>-c cols </I>|<I> -cols cols</I>
|
|
|
|
<DD>
|
|
formatuje liczbę
|
|
<<I>cols</I>>
|
|
|
|
oktetów na wiersz. Domyślnie 16 (-i: 12, -ps: 30, -b: 6). Maks.
|
|
256.
|
|
<DT id="4"><I>-E</I> | -EBCDIC
|
|
|
|
<DD>
|
|
zmienia kodowanie znaków w prawej kolumnie z ASCII na EBCDIC.
|
|
Nie zmienia prezentacji heksadecymalej. Opcja nie działa w połączeniu
|
|
z -r, -p lub -i.
|
|
<DT id="5"><I>-g bajtów </I>|<I> -groupsize bajtów</I>
|
|
|
|
<DD>
|
|
oddziela wyjście każdych
|
|
<<I>bajtów</I>>
|
|
|
|
bajtów (dwa heksowe znaki lub osiem cyfr binarnych każde) przez biały
|
|
znak.
|
|
Określ
|
|
<I>-g 0</I>
|
|
|
|
by wyłączyć grupowanie.
|
|
<<I>Bajtów</I>> domyślnie jest <I>2</I>
|
|
|
|
w trybie normalnym i <I>1</I> w trybie bitów.
|
|
Grupowanie nie działa w trybie postscriptu lub włączania.
|
|
<DT id="6"><I>-h</I> | <I>-help</I>
|
|
|
|
<DD>
|
|
wypisuje podsumowanie dostępnych poleceń i kończy działanie. Nie
|
|
zostaje przeprowadzony żaden zrzut.
|
|
<DT id="7"><I>-i</I> | <I>-include</I>
|
|
|
|
<DD>
|
|
wyjście w stylu włączania pliku w C. Zostaje zapisana kompletna
|
|
statyczna tablica definicji (nazwana według pliku wejścia), o ile xxd
|
|
nie czyta ze standardowego wejścia.
|
|
<DT id="8"><I>-l len </I>|<I>-len len</I>
|
|
|
|
<DD>
|
|
zakończ po wypisaniu
|
|
<<I>len</I>>
|
|
|
|
oktetów.
|
|
<DT id="9"><I>-p</I> | <I>-ps</I> | <I>-postscript</I> | <I>-plain</I>
|
|
|
|
<DD>
|
|
wyjście w postcriptowym ciągłym stylu zrzutu heksowego. Znany także
|
|
jako zwykły zrzut heksowy.
|
|
<DT id="10"><I>-r</I> | <I>-revert</I>
|
|
|
|
<DD>
|
|
odwróć operację: przekonwertuj (lub załataj) zrzut heksowy w binarkę.
|
|
Jeśli nie zapisuje na standardowe wyjście, xxd zapisze plik wyjściowy
|
|
bez obcinania go. Użyj kombinacji
|
|
<I>-r -p</I>
|
|
|
|
by odczytać zwykły zrzut heksadecymalny bez numerów linii
|
|
i określonego układu kolumn. Dodatkowe białe znaki i łamanie wierszy
|
|
są wszędzie dozwolone.
|
|
<DT id="11"><I>-seek offset</I>
|
|
|
|
<DD>
|
|
Kiedy użyty po
|
|
<I>-r</I>:
|
|
|
|
odwraca z
|
|
<<I>offset</I>>
|
|
|
|
dodanym do pozycji w pliku odnalezionym w zrzucie heksowym.
|
|
<DT id="12"><I>-s [+][-]seek</I>
|
|
|
|
<DD>
|
|
zaczyna na
|
|
<<I>seek</I>>
|
|
|
|
bajtów bezwględnego (lub względnego) offsetu pliku wejściowego.
|
|
<I>+ </I>wskazuje, że seek jest względne do bieżącej pozycji pliku (bez
|
|
znaczenia jeśli nie wczytuje ze standardowego wejścia). <I>- </I>wskazuje
|
|
że seek powinno być o tyle znaków od końca wejścia (lub jeśli
|
|
połączone z <I>+</I>: przed bieżącą pozycją pliku na standardowym
|
|
wejściu).
|
|
Bez opcji -s xxd zaczyna od bieżącej pozycji w pliku.
|
|
<DT id="13"><I>-u</I>
|
|
|
|
<DD>
|
|
użyj wielkich liter w znakach heksowych. Domyślnie są małe znaki.
|
|
<DT id="14"><I>-v</I> | <I>-version</I>
|
|
|
|
<DD>
|
|
pokazuje wersję programu.
|
|
</DL>
|
|
<A NAME="lbAF"> </A>
|
|
<H2>OSTRZEŻENIA</H2>
|
|
|
|
<P>
|
|
|
|
<I>xxd -r</I>
|
|
|
|
potrafi określić numery linii. Jeśli plik wyjścia jest możliwy do
|
|
przeszukania wtedy numery linii na początku wiersza zrzutu heksowego
|
|
mogą być nie po kolei, może brakować wierszy lub nakładać się na
|
|
siebie. W takich wypadkach xxd użyje <A HREF="/cgi-bin/man/man2html?2+lseek">lseek</A>(2) by znaleźć następną
|
|
pozycję. Jeśli plik wyjściowy nie jest możliwy do przeszukania możliwe
|
|
są tylko przerwy, które zostaną wypełnione bajtami null.
|
|
<P>
|
|
|
|
<I>xxd -r</I>
|
|
|
|
nigdy nie podaje błędów analizy. Śmieci są po cichu ignorowane.
|
|
<P>
|
|
|
|
W czasie edycji zrzutów heksowych, proszę zauważyć że
|
|
<I>xxd -r</I>
|
|
|
|
pomija wszystko w linii wejścia po odczytaniu wystarczającej ilości
|
|
kolumn danych heksadecymalnych (zobacz opcję -c). Oznacza to także,
|
|
że zmiany w drukowanych kolumnach ascii (lub ebcdic) są zawsze
|
|
ignorowane. Odwrócenie zwykłego (lub postscriptowego) stylu zrzutu
|
|
poprzez xxd -r -p nie zależy od kolejności kolumn. Tutaj cokolwiek
|
|
co wygląda jak para znaków heks jest interpretowane.
|
|
<P>
|
|
|
|
Zauważ różnicę między
|
|
<BR>
|
|
|
|
<I>% xxd -i plik</I>
|
|
<BR>
|
|
|
|
i
|
|
<BR>
|
|
|
|
<I>% xxd -i < plik</I>
|
|
<P>
|
|
|
|
<I>xxd -s +seek</I>
|
|
|
|
może być różne od
|
|
<I>xxd -s seek</I>,
|
|
|
|
ponieważ <A HREF="/cgi-bin/man/man2html?2+lseek">lseek</A>(2) jest użyty do "przewinięcie" wejścia. '+' stanowi
|
|
różnicę jeśli źródłem wejścia jest standardowe wejście i jeśli pozycja
|
|
w pliku ze standardowego wejścia nie jest początkiem pliku w chwili
|
|
uruchomienia xxd. Następujące przykłady mogą wyjaśnić (lub bardziej
|
|
zmylić!)...
|
|
<P>
|
|
|
|
Przewiń standardowe wejście przed przeczytaniem; potrzebne ponieważ
|
|
`cat' już odczytał do końca standardowego wejścia.
|
|
<BR>
|
|
|
|
<I>% sh -c 'cat > zwykła_kopia; xxd -s 0 > hex_kopia' < plik</I>
|
|
<P>
|
|
|
|
Zrzut heksowy od pozycji pliku 0x480 (=1024+128) w przód.
|
|
Znak `+' oznacza "względny wobec bieżącej pozycji", stąd `128' dodaje
|
|
do 1k gdzie zakończył dd.
|
|
<BR>
|
|
|
|
<I>% sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet' < file</I>
|
|
<P>
|
|
|
|
Zrzut heksowy od pozycji pliku 0x100 ( = 1024-768) dalej.
|
|
<BR>
|
|
|
|
<I>% sh -c 'dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet' < file</I>
|
|
<P>
|
|
|
|
Jakkolwiek, jest to rzadka sytuacja i użycie `+' jest rzadko
|
|
potrzebne.
|
|
Autor woli monitorować działanie xxd przy pomocy <A HREF="/cgi-bin/man/man2html?1+strace">strace</A>(1) lub <A HREF="/cgi-bin/man/man2html?1+truss">truss</A>(1) kiedy -s jest użyte.
|
|
<A NAME="lbAG"> </A>
|
|
<H2>PRZYKŁADY</H2>
|
|
|
|
<P>
|
|
|
|
<BR>
|
|
|
|
Wypisz wszystko z wyjątkiem pierwszych trzech linii (heksowe 0x30 bajtów)
|
|
<B>pliku</B>
|
|
|
|
.
|
|
<BR>
|
|
|
|
<I>% xxd -s 0x30 plik</I>
|
|
<P>
|
|
|
|
<BR>
|
|
|
|
Wypisz trzy linie (heksowe 0x30 bajtów) z końca
|
|
<B>pliku</B>
|
|
|
|
.
|
|
<BR>
|
|
|
|
<I>% xxd -s -0x30 plik</I>
|
|
<P>
|
|
|
|
<BR>
|
|
|
|
Wypisz 120 bajtów jako ciągły zrzut heksowy z 20 oktetami na linię.
|
|
<BR>
|
|
|
|
<I>% xxd -l 120 -ps -c 20 xxd.1</I>
|
|
<BR>
|
|
|
|
2e54482058584420312022417567757374203139
|
|
<BR>
|
|
|
|
39362220224d616e75616c207061676520666f72
|
|
<BR>
|
|
|
|
20787864220a2e5c220a2e5c222032317374204d
|
|
<BR>
|
|
|
|
617920313939360a2e5c22204d616e2070616765
|
|
<BR>
|
|
|
|
20617574686f723a0a2e5c2220202020546f6e79
|
|
<BR>
|
|
|
|
204e7567656e74203c746f6e79407363746e7567
|
|
<BR>
|
|
|
|
<P>
|
|
<BR>
|
|
|
|
Zrzut heksowy z pierwszymi 120 bajtami tej strony podręcznika z 12
|
|
oktetami na linię.
|
|
<BR>
|
|
|
|
<I>% xxd -l 120 -c 12 xxd.1</I>
|
|
<BR>
|
|
|
|
0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
|
|
<BR>
|
|
|
|
000000c: 7567 7573 7420 3139 3936 2220 ugust 1996"
|
|
<BR>
|
|
|
|
0000018: 224d 616e 7561 6c20 7061 6765 "Manual page
|
|
<BR>
|
|
|
|
0000024: 2066 6f72 2078 7864 220a 2e5c for xxd"..\
|
|
<BR>
|
|
|
|
0000030: 220a 2e5c 2220 3231 7374 204d "..\" 21st M
|
|
<BR>
|
|
|
|
000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\"
|
|
<BR>
|
|
|
|
0000048: 4d61 6e20 7061 6765 2061 7574 Man page aut
|
|
<BR>
|
|
|
|
0000054: 686f 723a 0a2e 5c22 2020 2020 hor:..\"
|
|
<BR>
|
|
|
|
0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent
|
|
<BR>
|
|
|
|
000006c: 3c74 6f6e 7940 7363 746e 7567 <<A HREF="mailto:tony@sctnug">tony@sctnug</A>
|
|
<P>
|
|
|
|
<BR>
|
|
|
|
Pokaż tylko datę z pliku xxd.1
|
|
<BR>
|
|
|
|
<I>% xxd -s 0x36 -l 13 -c 13 xxd.1</I>
|
|
<BR>
|
|
|
|
0000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996
|
|
<P>
|
|
|
|
<BR>
|
|
|
|
Kopiuj
|
|
<B>plik_we</B>
|
|
|
|
do
|
|
<B>plik_wy</B>
|
|
|
|
i poprzedź 100 bajtami o wartości 0x00.
|
|
<BR>
|
|
|
|
<I>% xxd plik_we | xxd -r -s 100 > plik_wy</I>
|
|
<BR>
|
|
|
|
<P>
|
|
<BR>
|
|
|
|
Podmień datę w pliku xxd.1
|
|
<BR>
|
|
|
|
<I>% echo '0000037: 3574 68' | xxd -r - xxd.1</I>
|
|
<BR>
|
|
|
|
<I>% xxd -s 0x36 -l 13 -c 13 xxd.1</I>
|
|
<BR>
|
|
|
|
0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996
|
|
<P>
|
|
|
|
<BR>
|
|
|
|
Utwórz plik o 65537 bajtach, wszystkich równych 0x00,
|
|
z wyjątkiem ostatniego, który ma być 'A' (hex 0x41).
|
|
<BR>
|
|
|
|
<I>% echo '010000: 41' | xxd -r > plik</I>
|
|
<P>
|
|
|
|
<BR>
|
|
|
|
Zrzut heksowy tego pliku z autoskipem.
|
|
<BR>
|
|
|
|
<I>% xxd -a -c 12 plik</I>
|
|
<BR>
|
|
|
|
0000000: 0000 0000 0000 0000 0000 0000 ............
|
|
<BR>
|
|
|
|
*
|
|
<BR>
|
|
|
|
000fffc: 0000 0000 40 ....A
|
|
<P>
|
|
|
|
Utwórz jedno bajtowy plik zawierający pojednczą literę 'A'.
|
|
Liczba po '-r -s' dodaje numery linii znalezione w pliku;
|
|
w efekcie poprzedzające bajty są ukryte.
|
|
<BR>
|
|
|
|
<I>% echo '010000: 41' | xxd -r -s -0x10000 > plik</I>
|
|
<P>
|
|
|
|
Użyj xxd jako filtra wewnątrz edytora takiego jak
|
|
<B><A HREF="/cgi-bin/man/man2html?1+vim">vim</A>(1)</B>
|
|
|
|
aby uzyskać zrzut heksowy zakresu między markerami `a' i `z'.
|
|
<BR>
|
|
|
|
<I>:'a,'z!xxd</I>
|
|
<P>
|
|
|
|
Użyj xxd jako filtra wewnątrz edytora takiego jak
|
|
<B><A HREF="/cgi-bin/man/man2html?1+vim">vim</A>(1)</B>
|
|
|
|
by odzyskać binarny zrzut heksowy zakresu pomiędzy markerami `a'
|
|
i `z'.
|
|
<BR>
|
|
|
|
<I>:'a,'z!xxd -r</I>
|
|
<P>
|
|
|
|
Użyj xxd jako filtra wewnątrz edytora takiego jak
|
|
<B><A HREF="/cgi-bin/man/man2html?1+vim">vim</A>(1)</B>
|
|
|
|
by odzyskać jedną linię zrzutu heksowego. Przejdź z kursorem na linię
|
|
i wpisz:
|
|
<BR>
|
|
|
|
<I>!!xxd -r</I>
|
|
<P>
|
|
|
|
Odczytaj pojednycze znaki z portu szeregowego
|
|
<BR>
|
|
|
|
<I>% xxd -c1 < /dev/term/b &</I>
|
|
<BR>
|
|
|
|
<I>% stty < /dev/term/b -echo -opost -isig -icanon min 1</I>
|
|
<BR>
|
|
|
|
<I>% echo -n foo > /dev/term/b</I>
|
|
<P>
|
|
|
|
<A NAME="lbAH"> </A>
|
|
<H2>ZWRACANE WARTOŚCI</H2>
|
|
|
|
Zwracane są następujące wartości błędów:
|
|
<DL COMPACT>
|
|
<DT id="15">0<DD>
|
|
nie znaleziono błędów.
|
|
<DT id="16">-1<DD>
|
|
operacja nie jest wspierana (
|
|
<I>xxd -r -i</I>
|
|
|
|
cały czas niemożliwa).
|
|
<DT id="17">1<DD>
|
|
błąd w czasie analizowania opcji.
|
|
<DT id="18">2<DD>
|
|
problemy z plikiem wejściowym.
|
|
<DT id="19">3<DD>
|
|
problemy z plikiem wyjściowym.
|
|
<DT id="20">4,5<DD>
|
|
żądana pozycja jest nieosiągalna.
|
|
</DL>
|
|
<A NAME="lbAI"> </A>
|
|
<H2>ZOBACZ TAKŻE</H2>
|
|
|
|
<A HREF="/cgi-bin/man/man2html?1+uuencode">uuencode</A>(1), <A HREF="/cgi-bin/man/man2html?1+uudecode">uudecode</A>(1), <A HREF="/cgi-bin/man/man2html?1+patch">patch</A>(1)
|
|
<BR>
|
|
|
|
<A NAME="lbAJ"> </A>
|
|
<H2>OSTRZEŻENIA</H2>
|
|
|
|
Dziwaczność narzędzi dorównuje dziwaczności mózgu twórcy.
|
|
Używaj wyłącznie na własną odpowiedzialność. Kopiuj pliki. Analizuj
|
|
je. Stań się czarodziejem.
|
|
<BR>
|
|
|
|
<A NAME="lbAK"> </A>
|
|
<H2>WERSJA</H2>
|
|
|
|
Strona podręcznika opisuje xxd w wersji 1.7
|
|
<A NAME="lbAL"> </A>
|
|
<H2>AUTOR</H2>
|
|
|
|
<BR>
|
|
|
|
(c) 1990-1997 by Juergen Weigert
|
|
<BR>
|
|
|
|
<<A HREF="mailto:jnweiger@informatik.uni-erlangen.de">jnweiger@informatik.uni-erlangen.de</A>>
|
|
<P>
|
|
|
|
Kopiuj do woli i podaj moje dane,
|
|
<BR>
|
|
|
|
zarabiaj pieniądze i dziel się ze mną,
|
|
<BR>
|
|
|
|
trać pieniądze i nie miej do mnie pretensji.
|
|
<P>
|
|
|
|
Strona podręcznika zapoczątkowana przez Tony'ego Nugenta
|
|
<BR>
|
|
|
|
<<A HREF="mailto:tony@sctnugen.ppp.gu.edu.au">tony@sctnugen.ppp.gu.edu.au</A>> <<A HREF="mailto:T.Nugent@sct.gu.edu.au">T.Nugent@sct.gu.edu.au</A>>
|
|
<BR>
|
|
|
|
Małe zmiany: Bram Moolenaar.
|
|
Redakcja: Juergen Weigert.
|
|
<P>
|
|
|
|
<P>
|
|
|
|
<HR>
|
|
<A NAME="index"> </A><H2>Index</H2>
|
|
<DL>
|
|
<DT id="21"><A HREF="#lbAB">NAZWA</A><DD>
|
|
<DT id="22"><A HREF="#lbAC">SYNOPSIS</A><DD>
|
|
<DT id="23"><A HREF="#lbAD">OPIS</A><DD>
|
|
<DT id="24"><A HREF="#lbAE">OPCJE</A><DD>
|
|
<DT id="25"><A HREF="#lbAF">OSTRZEŻENIA</A><DD>
|
|
<DT id="26"><A HREF="#lbAG">PRZYKŁADY</A><DD>
|
|
<DT id="27"><A HREF="#lbAH">ZWRACANE WARTOŚCI</A><DD>
|
|
<DT id="28"><A HREF="#lbAI">ZOBACZ TAKŻE</A><DD>
|
|
<DT id="29"><A HREF="#lbAJ">OSTRZEŻENIA</A><DD>
|
|
<DT id="30"><A HREF="#lbAK">WERSJA</A><DD>
|
|
<DT id="31"><A HREF="#lbAL">AUTOR</A><DD>
|
|
</DL>
|
|
<HR>
|
|
This document was created by
|
|
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
|
using the manual pages.<BR>
|
|
Time: 00:06:20 GMT, March 31, 2021
|
|
</BODY>
|
|
</HTML>
|