18.1.3 ディレクトリでも通常ファイルでもないファイル

一部のファイルはディレクトリでも通常ファイルでもなく、シンボリックリンク、デバイス特殊ファイル、名前付きパイプ、ソケットのような特殊なファイルです。現在、diff はシンボリックリンクをその参照先のファイルと同じように扱います。ただし、再帰的な diff がシンボリックリンクの無限ループ(たとえば .. へのシンボリックリンク)を検出した場合はエラーを報告します。diff は、トップレベルで指定されたその他の特殊ファイルを通常ファイルと同様に扱いますが、ディレクトリ比較ではその存在を報告するだけです。このため、patch はそうしたファイルの変化を表せません。たとえば、シンボリックリンクの参照先を変更すると、diff はシンボリックリンク自体の変化ではなく、2つの参照先ファイルの差分を出力します。

diff は特殊ファイルの変化を特別な方法で報告するかどうかを選択できるようにし、patch もその拡張を理解するように拡張すべきです。