반달가면 이글루에서 백업 - http://bahndal.egloos.com/600133 (2017.6.19)
리눅스에서 바이너리 파일 내용을 16진수로 출력해야 할 경우 xxd라는 요긴한 도구가 있다. 아래의 예시를 보자.
# data.bin 파일 내용 출력
xxd data.bin
0000000: 1f8b 0800 ...
0000010: e103 6abb ...
...
위와 같이 입력하면 통상 많이 볼 수 있는 바이너리 파일 편집기와 유사한 형식으로 내용을 출력해 준다. 기본 출력은 2바이트씩 묶어서 공백으로 구분해서 보여주는데, 만약 각 바이트마다 공백으로 구분하려면 -g 옵션을 추가해 주자.
# data.bin 파일 내용 출력, 1바이트 단위로 구분
xxd -g 1 data.bin
0000000: 1f 8b 08 00 ...
0000010: e1 03 6a bb ...
...
위치 오프셋(offset)이나 ASCII 보기 등을 출력하지 않고 실제 파일의 내용만 16진수로 출력하고 싶을 경우에는 -p 옵션을 사용하면 되겠다.
# data.bin 파일 내용 출력, 연속된 16진수 형태
xxd -p data.bin
1f8b0800...
바이너리 파일에서 특정 16진수 패턴이 있는지 확인하고 싶을 때 grep 명령과 조합해서 편리하게 활용할 수 있다. 파일 크기가 크면 출력이 너무 길어질 수 있으므로 일치하는 부분만 출력하기 위해 grep에서 -o 옵션을 사용하는 것이 좋겠다.
# data.bin 파일 내용중에 0x0d 0x0a 존재 여부 확인
xxd -p data.bin | grep -o "0d0a"
'리눅스' 카테고리의 다른 글
리눅스에서 pdf 파일 분할하기 (0) | 2023.08.02 |
---|---|
xxd - 리눅스에서 16진수를 바이너리 파일로 변환 (0) | 2023.08.02 |
adduser/deluser - 리눅스에서 새로운 사용자 추가/삭제 (0) | 2023.08.01 |
lsof - 리눅스에서 현재 열려 있는 파일 목록 보기 (0) | 2023.08.01 |
리눅스에서 exFAT 파일 시스템으로 포맷하기(데비안/우분투 계열) (0) | 2023.08.01 |