
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
システムメッセージ 私のシステムはArch Linuxで、echoはbashとzshを介して使用するシェル組み込みコマンドです。
エラーレポート フィードバックをお寄せいただきありがとうございます。正しいバグトラッカーにこれをバグとして報告できました。 https://bugs.astron.com/view.php?id=256
答え1
エラーはmoreではなくinにもlibmagic
使用されますfile
。
たとえば、libmagic
空のファイルを報告するのはバイナリファイルであり、more
そのファイルを処理する特定のコードがあります。
少なくとも2つの解決策があります。more
libmagicサポートなしでソースから再構築するかlibmagic
。
ところで、報告しなければなりません。