`'ln -s /directory 'D:'` がなぜこのように動作するのでしょうか?

`'ln -s /directory 'D:'` がなぜこのように動作するのでしょうか?

前述の通りここは、'ln -s /directory 'D:'Windows のD:場所を Linux スタイルのディレクトリにマップします。

しかし、私の知る限り、これは Linux の命名システムに反しています。Linux ではなぜコマンドで Windows スタイルのディレクトリ スターターの使用が許可されているのでしょうかln?

答え1

これは Linux (および一般的な POSIX) では有効なディレクトリ名であるため機能しますD:。Linux に関しては意味がありません。

(一部のプログラムでは、適切なディレクトリ内で、このように名前が付けられた特定のディレクトリを特別な方法で処理します。たとえば、Wine は、dosdevicesWine プレフィックス内のディレクトリ内にこのようなディレクトリがあることを想定しています。ただし、これは Wine に固有のものであり、Linux によって強制されるものではありません。)

答え2

この:文字は、*nix ファイル名では特別な意味を持ちません。NUL を除くすべての文字が許可されます/(スペースや改行など、いくつかの文字はコマンドに入力またはパイプするときにエスケープする必要がありますが、それでも有効です)。

あなたの例では、D:単なる通常のファイルです。

関連情報