> 텍스트 처리 및 검색 > xxd

xxd: 16진수 덤프 생성 및 역변환

xxd는 파일이나 표준 입력의 내용을 16진수(hexadecimal) 형식으로 덤프하거나, 16진수 덤프를 다시 바이너리 형식으로 변환하는 유틸리티입니다. 주로 바이너리 파일의 내용을 확인하거나 수정할 때 사용되며, 디버깅이나 데이터 분석에 유용합니다.

개요

xxd는 주어진 데이터를 16진수와 ASCII 문자열로 동시에 보여주는 덤프를 생성합니다. 또한, 이러한 덤프를 다시 원본 바이너리 데이터로 변환하는 기능도 제공합니다.

주요 기능

  • 파일 또는 표준 입력의 16진수 덤프 생성
  • 16진수 덤프를 바이너리 파일로 역변환
  • 특정 오프셋부터 덤프 시작
  • 덤프 출력 형식 제어

주요 옵션

xxd 명령어의 주요 옵션들은 다음과 같습니다.

덤프 형식 및 제어

생성된 명령어:

명령어를 조합해 보세요.

설명:

`xxd` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

xxd 명령어의 다양한 활용 예시입니다.

파일의 기본 16진수 덤프

echo 'Hello World!' > test.txt
xxd test.txt

지정된 파일의 내용을 16진수와 ASCII 문자로 덤프합니다.

16진수 덤프를 바이너리 파일로 역변환

echo '00000000: 4865 6c6c 6f20 576f 726c 6421 0a    Hello World!.\n' > hex_dump.txt
xxd -r hex_dump.txt > restored.txt
cat restored.txt

xxd로 생성된 16진수 덤프 파일을 다시 원본 바이너리 파일로 복원합니다.

한 줄에 8바이트씩 출력

echo 'This is a test string for xxd.' > test.txt
xxd -c 8 test.txt

한 줄에 16바이트 대신 8바이트만 출력하도록 설정합니다.

파일의 처음 20바이트만 덤프

echo 'This is a longer test string for xxd to demonstrate the length option.' > test.txt
xxd -l 20 test.txt

파일의 시작부터 20바이트까지만 덤프합니다.

특정 오프셋부터 덤프 시작

echo 'abcdefghijklmnopqrstuvwxyz' > test.txt
xxd -s 5 test.txt

파일의 5번째 바이트부터 덤프를 시작합니다.

출력을 파일로 리다이렉션

echo 'Sample data' > input.txt
xxd input.txt > output.hex

xxd의 출력을 별도의 파일로 저장합니다. (xxd는 -o 옵션을 지원하지 않습니다.)

팁 & 주의사항

xxd 사용 시 유용한 팁과 주의할 점입니다.

'-o' 옵션에 대한 오해

많은 명령어들이 출력 파일을 지정하기 위해 '-o' 옵션을 사용하지만, xxd는 '-o' 옵션을 지원하지 않습니다. xxd의 출력을 파일로 저장하려면 셸의 리다이렉션(`>`)을 사용해야 합니다.

  • 올바른 사용법: xxd [옵션] <입력파일> > <출력파일>
  • 예시: xxd my_binary > my_binary.hex

다른 덤프 도구와의 비교

xxd 외에도 hexdump, od와 같은 덤프 도구가 있습니다. 각각의 특징을 이해하고 상황에 맞는 도구를 선택하는 것이 좋습니다.

  • **xxd**: 16진수와 ASCII 동시 출력, 역변환 기능 제공 (vim 패키지 포함)
  • **hexdump**: 다양한 출력 형식 지원 (16진수, 8진수, 10진수 등), 역변환 기능 없음
  • **od (octal dump)**: 주로 8진수 덤프에 사용되지만, 다양한 형식 지원

파이프라인 활용

xxd는 표준 입력을 받을 수 있으므로, 다른 명령어의 출력을 파이프라인으로 연결하여 즉시 덤프할 수 있습니다. 이는 임시 파일 생성 없이 데이터를 분석할 때 매우 유용합니다.

파이프라인 예시

ls -l | xxd

ls -l 명령어의 출력을 xxd로 덤프합니다.


관련 명령어

기능적으로 유사하거나 함께 자주쓰이는 명령어들입니다.



동일 카테고리 명령어