![고양이는 아무것도 보여주지 않는다](https://linux55.com/image/149653/%EA%B3%A0%EC%96%91%EC%9D%B4%EB%8A%94%20%EC%95%84%EB%AC%B4%EA%B2%83%EB%8F%84%20%EB%B3%B4%EC%97%AC%EC%A3%BC%EC%A7%80%20%EC%95%8A%EB%8A%94%EB%8B%A4.png)
우리 팀은 CI 환경에서 작업하고 있습니다.
CI 환경은 ko
매일이라는 이름의 파일을 정기적으로 생성하며 해당 유형은 .x.ko
ELF 64-bit LSB relocatable
오늘 ko
파일 형식이 data
.
이유를 알아내려고 노력 중이에요.
cat
이 파일을 사용해 보았지만 ko
결과는 아무것도 아닙니다. 그러다가 이 일을 해보고 cat -et x.ko
많은 것을 얻었습니다 ^@^@^@^@^@^@^@^@^@^@^@^@^@^@
...
그 의미를 알고 있나요 ^@^@^@^@^@^@^@^@^@
?
답변1
파일이 비어 있지 않고 null 값으로 가득 차 있습니다. 일반 프로그램은 cat
null 값을 표준 출력으로 인쇄하지만 터미널에서는 일반적으로 cat -v
이를 ^@
. ^@
"@"(0x40 또는 64) xor 64(토글 비트 7)의 바이트 값이 0이므로 널 바이트를 나타냅니다.
왜갑자기 null 값으로 채워져 여기서는 알 수 없습니다.
이 관련 질문은 캐럿 표현에 대한 정보를 제공할 수 있습니다.ASCII 이스케이프 시퀀스와 제어 문자 쌍이 표준의 일부입니까?
답변2
조심하세요,고양이이진 데이터를 표시하기 위한 완벽한 도구는 아닙니다.
간단한 유닉스 도구는 다음과 같습니다.OD(8진 덤프).
한 가지 예od-c-tx1
root@server:~# od -c -tx1 /etc/passwd | head
0000000 r o o t : x : 0 : 0 : r o o t :
72 6f 6f 74 3a 78 3a 30 3a 30 3a 72 6f 6f 74 3a
0000020 / r o o t : / b i n / b a s h \n
2f 72 6f 6f 74 3a 2f 62 69 6e 2f 62 61 73 68 0a
0000040 d a e m o n : x : 1 : 1 : d a e
64 61 65 6d 6f 6e 3a 78 3a 31 3a 31 3a 64 61 65
0000060 m o n : / u s r / s b i n : / u
6d 6f 6e 3a 2f 75 73 72 2f 73 62 69 6e 3a 2f 75
0000100 s r / s b i n / n o l o g i n \n
73 72 2f 73 62 69 6e 2f 6e 6f 6c 6f 67 69 6e 0a
캐리지 리턴을 볼 수 있습니다.\N