GNU/Linux >> Linux の 問題 >  >> Linux

Md5sumコマンドのバイナリおよびテキストモード?

GNU md5sum コマンドには2つのモードがあります: binary モードとテキスト モード。違いは改行文字の処理方法だけだと思いますか?私は正しいですか?

GNU / Linuxでは、2つのモードは常に同じ結果を生成するため、-bを使用するだけです。 および-t オプションはフラグを示すことです(* または )ファイル名の前に使用しますか?

どのような状況でモードは異なる結果を生み出すことができますか? Windows / MacOSシステムでは? (これらのプラットフォームのバージョンは利用可能ですか?)

承認された回答:

GNU / Linuxでは、2つのモードは常に同じ結果を生成します

はい、明示的に。 man md5sumから :

注: [原文のまま]GNUシステムのバイナリモードオプションとテキストモードオプションに違いはありません。

これはmd5sumからのものです GNUcoreutils8.21に同梱されている実装。古いバージョン(8.12)にはこの通知がないことに気付きましたが、とにかく同じことが当てはまると思います。

AFAICT md5sum は公式に標準化されておらず(たとえば、POSIXによって)、さまざまな実装のさまざまなプラットフォームで利用可能であり、システム間で使いやすくするために、これらを相互に準拠させるための努力が明らかにあります。

これに関連して、ISO / ANSI C規格には、ファイルにアクセスするための高レベルのストリーム機能が含まれています。標準の一部として、これらは共有ライブラリまたはコンパイラを介してISOCを実装するすべてのオペレーティングシステムで利用できます。ほとんどすべてのオペレーティングシステムでこれが利用可能であるため(そしてそれ自体がほとんどの場合Cで記述されているため)、これは潜在的に非常に移植性の高いソフトウェアを実装するために使用される一種の普遍的な言語です。

それが何をするかを考えると、md5sumを書くことは完全に実行可能です。 これは、任意のオペレーティングシステムでコンパイルおよび動作します。これがGNUcoreutilsバージョンに当てはまるとは言いませんが、前述の高レベルのファイルストリーム関数の1つはfopen()です。 、ISOCによってbを含めることが義務付けられています 「バイナリファイルとして」開かれていることを示すためにファイルを開くときに使用されるスイッチ。それがシステムに何を意味するか、または必要とするかはではありません 規格で規定されているように、存在する必要があるだけなので、システムで使用できる場合があります( )その理由。

linux / POSIX / * nixスタイルのオペレーティングシステムにはそのような理由はないため、スイッチは何もしません。 fopen()のPOSIX仕様(ISO Cのスーパーセット)から:

文字「b」は効果がありませんが、ISOC標準への適合が許可されています。

したがって、完全に移植可能なmd5sum ISO Cのファイルにアクセスする方法は他にないため、実装ではISO高レベルのファイルストリーム関数を使用する場合があります(POSIX準拠のものを含むほとんどのプラットフォームには独自の低レベルの方法もありますが、これらを使用することは移植性がないためです。 ISO C)には含まれておらず、-bも実装する必要があります および-t bを追加するかどうかを指定するフラグ fopen()のオプション ファイルを読み取るとき。それが無意味なシステムでは、違いはありません。

関連:ulimit PICKLE:「操作は許可されていません」および「コマンドが見つかりません」?

繰り返しになりますが、GNUのmd5sumがこのように完全に移植可能な方法で書かれている、またはそれから派生していると言っているわけではありませんが、操作性において、GNUはそのようなものに準拠しようとしています。何もしないフラグがあることは、フラグがないことと同じではないことに注意してください。前者の場合、それは大丈夫であると指定されていますが、何もしませんが、後者の場合、それを使用するとエラーになるか、未定義の動作につながる可能性があります。


Linux
  1. Linux Catコマンド:使用法と例

  2. Linuxコマンド-概要と例

  3. Linuxコマンド:jobs、bg、およびfg

  1. コマンドと構文の強調表示が少なくなりますか?

  2. Command Grepを使用して検索しますか?

  3. バイナリ モードをテキスト モードに変換し、その逆のオプション

  1. テキストファイルの並べ替えに役立つAwkワンライナーとスクリプト

  2. LinuxでSed、ex、perlコマンドを使用してテキストを検索および置換する

  3. コマンド例を含むvimチュートリアル