マニュアルページの状態dos2unix
:
Binary files are automatically skipped, unless conversion is forced.
...
-f, --force
Force conversion of binary files.
特殊記号(垂直タブなど)を含むファイルでこのフラグなしで実行すると、dos2unix
次のメッセージで失敗します。-f
dos2unix: Binary symbol found at line 123
dos2unix: Skipping binary file foo.csv
私の質問は、特別なシンボルを持つファイルが見つかった場合、なぜデフォルトの動作がdos2unix
ユーザーが間違っていると仮定するのですか?ユーザーが実際のバイナリでこれを実行して破損する可能性があることは注意してください。
ベストアンサー1
これは、テキストファイルの2文字がDOS / Windowsで行末として使用され、Unix / Linux行末に置き換えられる必要があることが知られていますが、dos2unix
「バイナリ」ファイルではそれほど明確ではないためです。0x0d0a
0x0a
「バイナリ」ファイルは、実行可能ファイル、アーカイブ、データベース、未知のプログラムのデータファイル、または前述の圧縮バージョンです。これには、10進値を含むデータバイトペア、または0x0d0a
CPU命令を含めることもできます。short int
3338
このファイルを交換すると、0x0d0a
ファイルが破損します(機能しなくなります)。0x0a
これは一般的に悪い考えなので、dos2unix
基本的には行われません。
しかし、Unix方式は、人々が自分が何をしているのかを知っていると仮定し(必要に応じて自分で足を撃つこと)、dos2unix
「バイナリ」を検出するのに完璧ではないので、偽の肯定の場合はこれを無視することが可能です。