more
Linux에서 프로그램의 출력이 혼란스럽습니다. 단일 문자만 포함하는 파일을 생성하는 경우( ä
잘 작동하는 이와 같은 특수 문자 제외) more는 파일 내용을 보고하지 않지만 파일은 텍스트 파일이 아닙니다. 파일에 두 개 이상의 문자가 포함되어 있으면 more
오류가 보고되지 않고 파일 출력만 인쇄됩니다.
> rm file
> echo 'h' > file
> more file
******** file: Not a text file ********
> cat file
h
이것은 내 버전의 버그입니까, more
아니면 단일 문자 파일 예에서 충족되지 않는 텍스트 파일에 대한 특정 요구 사항이 있습니까?
더 많은 버전: more from util-linux 2.36.2
.
자세한 내용은
문서 내용 od의 출력은 다음과 같습니다.
> od -x file
0000000 0a68
0000002
내가 이해한 바로는 문제가 예상과 다르게 동작해서만 발생하는 것 같지 않습니다 echo
. 왜냐하면 다음과 같이 printf를 사용할 때 문제가 지속되고 명령의 출력이 od
동일하기 때문입니다(따라서 생성된 파일 을 echo
통해 printf
와 동일하다)
> printf 'h\n' > file2
> more file2
******** file2: Not a text file ********
> od -x file2
0000000 0a68
0000002
file
유틸리티 버전
> file --version
file-5.40
magic file from /usr/share/file/misc/magic
seccomp support included
시스템 메시지 내 시스템은 아치 리눅스이고 echo는 bash와 zsh를 통해 사용하는 쉘 내장 명령입니다.
오류 보고서 피드백을 보내주셔서 감사합니다. 올바른 버그 추적기에 이를 버그로 보고할 수 있었습니다. https://bugs.astron.com/view.php?id=256
답변1
오류는 more 가 아니라 in 에도 libmagic
사용됩니다 file
.
예를 들어 libmagic
빈 파일을 보고하는 것은 바이너리 파일이며 more
해당 파일을 처리하는 특정 코드가 있습니다.
적어도 두 가지 해결책이 있습니다. more
libmagic 지원 없이 소스에서 다시 빌드 하거나 libmagic
.
그런데, 신고해야 합니다.