More
更多/文件報告“不是文本文件”文件,其中僅包含一個字母和換行符
我對
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使用的shell內置命令。
錯誤報告 感謝您的回饋,我能夠在正確的錯誤跟踪器上將此報告為錯誤: https ://bugs.astron.com/view.php?id=256
錯誤不在 more 中,而在
libmagic
, 也被file
.例如,
libmagic
報告一個空文件是二進製文件,並且more
有特定的程式碼來處理它。我看到至少兩個解決方案,您可以
more
從原始碼重建,沒有 libmagic 支持,或者您可以降級libmagic
。順便說一句,你應該報告它。