Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 1 | .TH XXD 1 "Sierpień 1996" "Strona podręcznika dla xxd" |
| 2 | .\" |
| 3 | .\" 21st May 1996 |
| 4 | .\" Man page author: |
| 5 | .\" Tony Nugent <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au> |
| 6 | .\" Changes by Bram Moolenaar <Bram@vim.org> |
| 7 | .SH NAZWA |
| 8 | .I xxd |
| 9 | \- zrzut pliku do hex lub odwrotnie |
| 10 | .SH SYNOPSIS |
| 11 | .B xxd |
| 12 | \-h[elp] |
| 13 | .br |
| 14 | .B xxd |
| 15 | [opcje] [plik_we [plik_wy]] |
| 16 | .br |
| 17 | .B xxd |
| 18 | \-r[evert] [opcje] [plik_we [plik_wy]] |
| 19 | .SH OPIS |
| 20 | .I xxd |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 21 | tworzy zrzut heksowy podanego pliku lub standardowego wejścia. |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 22 | Może także przetworzyć zrzut heksowy z powrotem do oryginalnej, |
| 23 | binarnej formy. |
| 24 | Podobnie jak |
| 25 | .BR uuencode (1) |
| 26 | i |
| 27 | .BR uudecode (1) |
| 28 | pozwala na przekazanie danych binarnych w bezpiecznej w poczcie formie |
| 29 | ASCII, ale ma zalety dekodowania na standardowe wyjście. |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 30 | Ponadto można go użyć do binarnego łatania plików. |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 31 | .SH OPCJE |
| 32 | Jeśli nie podano |
| 33 | .I plik_we |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 34 | xxd czyta ze standardowego wejścia. |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 35 | Jeśli określono |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 36 | .I plik_we |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 37 | jako znak |
| 38 | .RB \` \- ' |
| 39 | wtedy dane wejściowe czytane są ze standardowego wejścia. |
| 40 | Jeśli nie podano |
| 41 | .I plik_wy |
| 42 | (lub podano jako |
| 43 | .RB \` \- ' |
| 44 | ), wyniki są wysyłane na standardowe wyjście. |
| 45 | .PP |
| 46 | Pamiętaj, że użyty został "leniwy" parser, który nie sprawdza więcej |
| 47 | niż pierwszej litery opcji (o ile ta nie została obdarzona |
| 48 | parametrem). Spacje między jedno literowymi opcjami i ich parametrami |
| 49 | są opcjonalne. Parametry opcji mogą być określone w notacji dziesiętnej, |
| 50 | heksadecymalej lub oktalnej. |
| 51 | Stąd |
| 52 | .BR \-c8 , |
| 53 | .BR "\-c 8" , |
| 54 | .B \-c 010 |
| 55 | i |
| 56 | .B \-cols 8 |
| 57 | są sobie równoważne. |
| 58 | .PP |
| 59 | .TP |
| 60 | .IR \-a " | " \-autoskip |
| 61 | przełącza autoskip: pojedyncza '*' zastępuje linie nul. Domyślnie |
| 62 | wyłączone. |
| 63 | .TP |
| 64 | .IR \-b " | " \-bits |
| 65 | Przełącza do zrzutu bitowego (cyfr binarnych) zamiast heksowego. |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 66 | Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 67 | zrzutu heksowego. Każda linia jest poprzedzona przez |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 68 | heksadecymalny numer linii a po nim jego reprezentacją w ascii (lub |
tristhaus | 85f4521 | 2023-10-06 19:51:13 +0200 | [diff] [blame] | 69 | ebcdic). Opcje linii poleceń \-p, \-i nie działają w tym |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 70 | trybie. |
| 71 | .TP |
| 72 | .IR "\-c cols " | " \-cols cols" |
| 73 | formatuje liczbę |
| 74 | .RI < cols > |
| 75 | oktetów na wiersz. Domyślnie 16 (\-i: 12, \-ps: 30, \-b: 6). Maks. |
| 76 | 256. |
| 77 | .TP |
| 78 | .IR \-E " | "\-EBCDIC |
| 79 | zmienia kodowanie znaków w prawej kolumnie z ASCII na EBCDIC. |
| 80 | Nie zmienia prezentacji heksadecymalej. Opcja nie działa w połączeniu |
| 81 | z \-r, \-p lub \-i. |
| 82 | .TP |
| 83 | .IR "\-g bajtów " | " \-groupsize bajtów" |
| 84 | oddziela wyjście każdych |
| 85 | .RI < bajtów > |
| 86 | bajtów (dwa heksowe znaki lub osiem cyfr binarnych każde) przez biały |
| 87 | znak. |
| 88 | Określ |
| 89 | .I \-g 0 |
| 90 | by wyłączyć grupowanie. |
| 91 | .RI < Bajtów "> domyślnie jest " 2 |
| 92 | w trybie normalnym i \fI1\fP w trybie bitów. |
| 93 | Grupowanie nie działa w trybie postscriptu lub włączania. |
| 94 | .TP |
| 95 | .IR \-h " | " \-help |
| 96 | wypisuje podsumowanie dostępnych poleceń i kończy działanie. Nie |
| 97 | zostaje przeprowadzony żaden zrzut. |
| 98 | .TP |
| 99 | .IR \-i " | " \-include |
| 100 | wyjście w stylu włączania pliku w C. Zostaje zapisana kompletna |
| 101 | statyczna tablica definicji (nazwana według pliku wejścia), o ile xxd |
| 102 | nie czyta ze standardowego wejścia. |
| 103 | .TP |
| 104 | .IR "\-l len " | "\-len len" |
| 105 | zakończ po wypisaniu |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 106 | .RI < len > |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 107 | oktetów. |
| 108 | .TP |
| 109 | .IR \-p " | " \-ps " | " \-postscript " | " \-plain |
| 110 | wyjście w postcriptowym ciągłym stylu zrzutu heksowego. Znany także |
| 111 | jako zwykły zrzut heksowy. |
| 112 | .TP |
| 113 | .IR \-r " | " \-revert |
| 114 | odwróć operację: przekonwertuj (lub załataj) zrzut heksowy w binarkę. |
| 115 | Jeśli nie zapisuje na standardowe wyjście, xxd zapisze plik wyjściowy |
| 116 | bez obcinania go. Użyj kombinacji |
| 117 | .I \-r \-p |
| 118 | by odczytać zwykły zrzut heksadecymalny bez numerów linii |
| 119 | i określonego układu kolumn. Dodatkowe białe znaki i łamanie wierszy |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 120 | są wszędzie dozwolone. |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 121 | .TP |
| 122 | .I \-seek offset |
| 123 | Kiedy użyty po |
| 124 | .IR \-r : |
| 125 | odwraca z |
| 126 | .RI < offset > |
| 127 | dodanym do pozycji w pliku odnalezionym w zrzucie heksowym. |
| 128 | .TP |
| 129 | .I \-s [+][\-]seek |
| 130 | zaczyna na |
| 131 | .RI < seek > |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 132 | bajtów bezwględnego (lub względnego) offsetu pliku wejściowego. |
| 133 | \fI+ \fRwskazuje, że seek jest względne do bieżącej pozycji pliku (bez |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 134 | znaczenia jeśli nie wczytuje ze standardowego wejścia). \fI\- \fRwskazuje |
| 135 | że seek powinno być o tyle znaków od końca wejścia (lub jeśli |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 136 | połączone z \fI+\fR: przed bieżącą pozycją pliku na standardowym |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 137 | wejściu). |
| 138 | Bez opcji \-s xxd zaczyna od bieżącej pozycji w pliku. |
| 139 | .TP |
| 140 | .I \-u |
| 141 | użyj wielkich liter w znakach heksowych. Domyślnie są małe znaki. |
| 142 | .TP |
| 143 | .IR \-v " | " \-version |
| 144 | pokazuje wersję programu. |
| 145 | .SH OSTRZEŻENIA |
| 146 | .PP |
| 147 | .I xxd \-r |
| 148 | potrafi określić numery linii. Jeśli plik wyjścia jest możliwy do |
| 149 | przeszukania wtedy numery linii na początku wiersza zrzutu heksowego |
| 150 | mogą być nie po kolei, może brakować wierszy lub nakładać się na |
| 151 | siebie. W takich wypadkach xxd użyje lseek(2) by znaleźć następną |
| 152 | pozycję. Jeśli plik wyjściowy nie jest możliwy do przeszukania możliwe |
| 153 | są tylko przerwy, które zostaną wypełnione bajtami null. |
| 154 | .PP |
| 155 | .I xxd \-r |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 156 | nigdy nie podaje błędów analizy. Śmieci są po cichu ignorowane. |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 157 | .PP |
| 158 | W czasie edycji zrzutów heksowych, proszę zauważyć że |
| 159 | .I xxd \-r |
| 160 | pomija wszystko w linii wejścia po odczytaniu wystarczającej ilości |
| 161 | kolumn danych heksadecymalnych (zobacz opcję \-c). Oznacza to także, |
| 162 | że zmiany w drukowanych kolumnach ascii (lub ebcdic) są zawsze |
| 163 | ignorowane. Odwrócenie zwykłego (lub postscriptowego) stylu zrzutu |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 164 | poprzez xxd \-r \-p nie zależy od kolejności kolumn. Tutaj cokolwiek |
| 165 | co wygląda jak para znaków heks jest interpretowane. |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 166 | .PP |
| 167 | Zauważ różnicę między |
| 168 | .br |
| 169 | \fI% xxd \-i plik\fR |
| 170 | .br |
| 171 | i |
| 172 | .br |
| 173 | \fI% xxd \-i < plik\fR |
| 174 | .PP |
| 175 | .I xxd \-s \+seek |
| 176 | może być różne od |
| 177 | .IR "xxd \-s seek" , |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 178 | ponieważ lseek(2) jest użyty do "przewinięcie" wejścia. '+' stanowi |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 179 | różnicę jeśli źródłem wejścia jest standardowe wejście i jeśli pozycja |
| 180 | w pliku ze standardowego wejścia nie jest początkiem pliku w chwili |
| 181 | uruchomienia xxd. Następujące przykłady mogą wyjaśnić (lub bardziej |
| 182 | zmylić!)... |
| 183 | .PP |
| 184 | Przewiń standardowe wejście przed przeczytaniem; potrzebne ponieważ |
| 185 | `cat' już odczytał do końca standardowego wejścia. |
| 186 | .br |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 187 | \fI% sh \-c 'cat > zwykła_kopia; xxd \-s 0 > hex_kopia' < plik\fR |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 188 | .PP |
| 189 | Zrzut heksowy od pozycji pliku 0x480 (=1024+128) w przód. |
| 190 | Znak `+' oznacza "względny wobec bieżącej pozycji", stąd `128' dodaje |
| 191 | do 1k gdzie zakończył dd. |
| 192 | .br |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 193 | \fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file\fR |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 194 | .PP |
| 195 | Zrzut heksowy od pozycji pliku 0x100 ( = 1024\-768) dalej. |
| 196 | .br |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 197 | \fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file\fR |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 198 | .PP |
| 199 | Jakkolwiek, jest to rzadka sytuacja i użycie `+' jest rzadko |
| 200 | potrzebne. |
| 201 | Autor woli monitorować działanie xxd przy pomocy strace(1) lub truss(1) kiedy \-s jest użyte. |
| 202 | .SH PRZYKŁADY |
| 203 | .PP |
| 204 | .br |
| 205 | Wypisz wszystko z wyjątkiem pierwszych trzech linii (heksowe 0x30 bajtów) |
| 206 | .B pliku |
| 207 | \. |
| 208 | .br |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 209 | \fI% xxd \-s 0x30 plik\fR |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 210 | .PP |
| 211 | .br |
| 212 | Wypisz trzy linie (heksowe 0x30 bajtów) z końca |
| 213 | .B pliku |
| 214 | \. |
| 215 | .br |
Bram Moolenaar | 8f3f58f | 2010-01-06 20:52:26 +0100 | [diff] [blame] | 216 | \fI% xxd \-s \-0x30 plik\fR |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 217 | .PP |
| 218 | .br |
Bram Moolenaar | 9964e46 | 2007-05-05 17:54:07 +0000 | [diff] [blame] | 219 | Wypisz 120 bajtów jako ciągły zrzut heksowy z 20 oktetami na linię. |
Bram Moolenaar | 899dddf | 2006-03-26 21:06:50 +0000 | [diff] [blame] | 220 | .br |
| 221 | \fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR |
| 222 | .br |
| 223 | 2e54482058584420312022417567757374203139 |
| 224 | .br |
| 225 | 39362220224d616e75616c207061676520666f72 |
| 226 | .br |
| 227 | 20787864220a2e5c220a2e5c222032317374204d |
| 228 | .br |
| 229 | 617920313939360a2e5c22204d616e2070616765 |
| 230 | .br |
| 231 | 20617574686f723a0a2e5c2220202020546f6e79 |
| 232 | .br |
| 233 | 204e7567656e74203c746f6e79407363746e7567 |
| 234 | .br |
| 235 | |
| 236 | .br |
| 237 | Zrzut heksowy z pierwszymi 120 bajtami tej strony podręcznika z 12 |
| 238 | oktetami na linię. |
| 239 | .br |
| 240 | \fI% xxd \-l 120 \-c 12 xxd.1\fR |
| 241 | .br |
| 242 | 0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A |
| 243 | .br |
| 244 | 000000c: 7567 7573 7420 3139 3936 2220 ugust 1996" |
| 245 | .br |
| 246 | 0000018: 224d 616e 7561 6c20 7061 6765 "Manual page |
| 247 | .br |
| 248 | 0000024: 2066 6f72 2078 7864 220a 2e5c for xxd"..\\ |
| 249 | .br |
| 250 | 0000030: 220a 2e5c 2220 3231 7374 204d "..\\" 21st M |
| 251 | .br |
| 252 | 000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\\" |
| 253 | .br |
| 254 | 0000048: 4d61 6e20 7061 6765 2061 7574 Man page aut |
| 255 | .br |
| 256 | 0000054: 686f 723a 0a2e 5c22 2020 2020 hor:..\\" |
| 257 | .br |
| 258 | 0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent |
| 259 | .br |
| 260 | 000006c: 3c74 6f6e 7940 7363 746e 7567 <tony@sctnug |
| 261 | .PP |
| 262 | .br |
| 263 | Pokaż tylko datę z pliku xxd.1 |
| 264 | .br |
| 265 | \fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR |
| 266 | .br |
| 267 | 0000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996 |
| 268 | .PP |
| 269 | .br |
| 270 | Kopiuj |
| 271 | .B plik_we |
| 272 | do |
| 273 | .B plik_wy |
| 274 | i poprzedź 100 bajtami o wartości 0x00. |
| 275 | .br |
| 276 | \fI% xxd plik_we | xxd \-r \-s 100 \> plik_wy\fR |
| 277 | .br |
| 278 | |
| 279 | .br |
| 280 | Podmień datę w pliku xxd.1 |
| 281 | .br |
| 282 | \fI% echo '0000037: 3574 68' | xxd \-r \- xxd.1\fR |
| 283 | .br |
| 284 | \fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR |
| 285 | .br |
| 286 | 0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996 |
| 287 | .PP |
| 288 | .br |
| 289 | Utwórz plik o 65537 bajtach, wszystkich równych 0x00, |
| 290 | z wyjątkiem ostatniego, który ma być 'A' (hex 0x41). |
| 291 | .br |
| 292 | \fI% echo '010000: 41' | xxd \-r \> plik\fR |
| 293 | .PP |
| 294 | .br |
| 295 | Zrzut heksowy tego pliku z autoskipem. |
| 296 | .br |
| 297 | \fI% xxd \-a \-c 12 plik\fR |
| 298 | .br |
| 299 | 0000000: 0000 0000 0000 0000 0000 0000 ............ |
| 300 | .br |
| 301 | * |
| 302 | .br |
| 303 | 000fffc: 0000 0000 40 ....A |
| 304 | .PP |
| 305 | Utwórz jedno bajtowy plik zawierający pojednczą literę 'A'. |
| 306 | Liczba po '\-r \-s' dodaje numery linii znalezione w pliku; |
| 307 | w efekcie poprzedzające bajty są ukryte. |
| 308 | .br |
| 309 | \fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> plik\fR |
| 310 | .PP |
| 311 | Użyj xxd jako filtra wewnątrz edytora takiego jak |
| 312 | .B vim(1) |
| 313 | aby uzyskać zrzut heksowy zakresu między markerami `a' i `z'. |
| 314 | .br |
| 315 | \fI:'a,'z!xxd\fR |
| 316 | .PP |
| 317 | Użyj xxd jako filtra wewnątrz edytora takiego jak |
| 318 | .B vim(1) |
| 319 | by odzyskać binarny zrzut heksowy zakresu pomiędzy markerami `a' |
| 320 | i `z'. |
| 321 | .br |
| 322 | \fI:'a,'z!xxd \-r\fR |
| 323 | .PP |
| 324 | Użyj xxd jako filtra wewnątrz edytora takiego jak |
| 325 | .B vim(1) |
| 326 | by odzyskać jedną linię zrzutu heksowego. Przejdź z kursorem na linię |
| 327 | i wpisz: |
| 328 | .br |
| 329 | \fI!!xxd \-r\fR |
| 330 | .PP |
| 331 | Odczytaj pojednycze znaki z portu szeregowego |
| 332 | .br |
| 333 | \fI% xxd \-c1 < /dev/term/b &\fR |
| 334 | .br |
| 335 | \fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR |
| 336 | .br |
| 337 | \fI% echo \-n foo > /dev/term/b\fR |
| 338 | .PP |
| 339 | .SH "ZWRACANE WARTOŚCI" |
| 340 | Zwracane są następujące wartości błędów: |
| 341 | .TP |
| 342 | 0 |
| 343 | nie znaleziono błędów. |
| 344 | .TP |
| 345 | \-1 |
| 346 | operacja nie jest wspierana ( |
| 347 | .I xxd \-r \-i |
| 348 | cały czas niemożliwa). |
| 349 | .TP |
| 350 | 1 |
| 351 | błąd w czasie analizowania opcji. |
| 352 | .TP |
| 353 | 2 |
| 354 | problemy z plikiem wejściowym. |
| 355 | .TP |
| 356 | 3 |
| 357 | problemy z plikiem wyjściowym. |
| 358 | .TP |
| 359 | 4,5 |
| 360 | żądana pozycja jest nieosiągalna. |
| 361 | .SH "ZOBACZ TAKŻE" |
| 362 | uuencode(1), uudecode(1), patch(1) |
| 363 | .br |
| 364 | .SH OSTRZEŻENIA |
| 365 | Dziwaczność narzędzi dorównuje dziwaczności mózgu twórcy. |
| 366 | Używaj wyłącznie na własną odpowiedzialność. Kopiuj pliki. Analizuj |
| 367 | je. Stań się czarodziejem. |
| 368 | .br |
| 369 | .SH WERSJA |
| 370 | Strona podręcznika opisuje xxd w wersji 1.7 |
| 371 | .SH AUTOR |
| 372 | .br |
| 373 | (c) 1990-1997 by Juergen Weigert |
| 374 | .br |
| 375 | <jnweiger@informatik.uni-erlangen.de> |
| 376 | .LP |
| 377 | Kopiuj do woli i podaj moje dane, |
| 378 | .br |
| 379 | zarabiaj pieniądze i dziel się ze mną, |
| 380 | .br |
| 381 | trać pieniądze i nie miej do mnie pretensji. |
| 382 | .PP |
| 383 | Strona podręcznika zapoczątkowana przez Tony'ego Nugenta |
| 384 | .br |
| 385 | <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au> |
| 386 | .br |
| 387 | Małe zmiany: Bram Moolenaar. |
| 388 | Redakcja: Juergen Weigert. |
| 389 | .PP |