名前に "\"が含まれるファイルのチェックサムを見つけると、md5sumがチェックサムの前に "\"を追加するのはなぜですか?
$ md5sum /tmp/test\\test
\d41d8cd98f00b204e9800998ecf8427e /tmp/test\\test
他のすべてのユーティリティにも同様です。
ベストアンサー1
これはファイルに書き込む、Coreutils の場合md5sum
:
もし文書バックスラッシュまたは改行文字を含み、行はバックスラッシュで始まり、ファイル名に問題があるすべての文字はバックスラッシュでエスケープされるため、任意のファイル名があっても出力はあいまいになりません。
(文書ファイルの内容ではなくファイル名です。)
b2sum
、sha1sum
、そして様々なSHA-2ツール動作はと同じですmd5sum
。sum
そしてcksum
いいえ。sum
以前のバージョンとの互換性のみを提供します(そしてその祖先は引用された出力を生成しません)。cksum
はい。POSIXで指定このタイプの出力は許可されません。
この行動は2015年11月発売バージョン 8.25 (2016 年 1 月) では、次の項目が含まれてリリースされましたNEWS
。
md5sum
次に、行の先頭に「\」を使用し、改行を「\ n」に置き換えて、各ファイルが標準出力にステータスを表示していることを確認してください。これは、にもsha1sum
影響しsha224sum
ます。sha256sum
sha384sum
sha512sum
行の先頭のバックスラッシュはフラグとして使用されます。ファイル名のエスケープは、行がバックスラッシュで始まる場合にのみ処理されます。 (エスケープ解除はデフォルトの動作ではありません。保存したファイル名を含める\\
か、保存した以前のバージョンのCoreutilsで生成された合計を破棄することができます。)\n