개요
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로 덤프합니다.