more/file은 하나의 문자와 개행 문자만 포함하는 파일에 대해 "텍스트 파일이 아님"을 보고합니다.

more/file은 하나의 문자와 개행 문자만 포함하는 파일에 대해 "텍스트 파일이 아님"을 보고합니다.

moreLinux에서 프로그램의 출력이 혼란스럽습니다. 단일 문자만 포함하는 파일을 생성하는 경우( ä잘 작동하는 이와 같은 특수 문자 제외) 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해당 파일을 처리하는 특정 코드가 있습니다.

적어도 두 가지 해결책이 있습니다. morelibmagic 지원 없이 소스에서 다시 빌드 하거나 libmagic.

그런데, 신고해야 합니다.

관련 정보