GNUツールが一致しない `と 'を使ってエラーを引用するのはなぜですか?

GNUツールが一致しない `と 'を使ってエラーを引用するのはなぜですか?

GNUツールは、多くの場合、行の一部(ファイル名、構文エラー、無効な日付など)が一致しない引用符( `および')で囲まれたエラーと警告メッセージを出力します。

たとえば、GNU coreutilsではよくある質問:

$ date -d "2006-04-02 02:30:00"
date: invalid date `2006-04-02 02:30:00'

そして

rm: cannot remove `backup.tar': Value too large for defined data

彼らはなぜこのようなことをするのですか?どんな利点がありますか?その背後に隠された歴史は何ですか?

ベストアンサー1

以前のXフォントを使用すると、「..」は「..」のように対称に見えます。

また、「..」が与えられると、ラテックスは正しい左右の一重引用符を生成します(例:「..」)。

したがって、「..」はハッキングです。 2012年のcoreutilsでは変更'..'を引用するようなシェル

ただし、これは完全なシェル構文ではなく、「\ r」文字などが含まれていると破損した出力が生成されます。場合によっては、引用符は一貫して使用されず、時にはUnicode '..'引用符が使用されます(ロケールに定義された引用符を使用し、対応する制御文字をエスケープする必要性を満たす)。

最新(2015)修理する 置くすべてのファイル名出力をシェル互換形式で引用し、より一貫性を保つためにcoreutilsに導入されました。これにより、制御文字を適切にエスケープし、他のコマンドに簡単にコピーして貼り付けることができます。診断の他の項目は、上記のように「完全なUnicode」参照を使用します。

おすすめ記事