more/file は、1 文字と改行文字のみを含むファイルについて「テキストファイルではない」を報告します。

more/file は、1 文字と改行文字のみを含むファイルについて「テキストファイルではない」を報告します。

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

システムメッセージ 私のシステムはArch Linuxで、echoはbashとzshを介して使用するシェル組み込みコマンドです。

エラーレポート フィードバックをお寄せいただきありがとうございます。正しいバグトラッカーにこれをバグとして報告できました。 https://bugs.astron.com/view.php?id=256

ベストアンサー1

エラーはmoreではなくinにもlibmagic使用されますfile

たとえば、libmagic空のファイルを報告するのはバイナリファイルであり、moreそのファイルを処理する特定のコードがあります。

少なくとも2つの解決策があります。morelibmagicサポートなしでソースから再構築するかlibmagic

ところで、報告しなければなりません。

おすすめ記事