Почему `'ln -s /directory 'D:'` работает именно так?

Почему `'ln -s /directory 'D:'` работает именно так?

Итак, как уже упоминалосьздесь, 'ln -s /directory 'D:'сопоставляет расположение Windows D:с каталогом в стиле Linux.

Однако, насколько мне известно, это противоречит системе именования Linux. Почему Linux позволяет использовать в lnкоманде имена каталогов в стиле Windows?

решение1

Это работает, потому что D:это допустимое имя каталога в Linux (и POSIX в целом). Оно не имеет значения, если речь идет о Linux.

(Некоторые программы будут обрабатывать определенные каталоги, названные таким образом, особым образом, в соответствующем каталоге; например, Wine ожидает, что каталоги, названные таким образом, будут находиться в каталоге dosdevicesвнутри префикса Wine. Но это специфично для Wine, а не предусмотрено Linux.)

решение2

Символ :не имеет специального значения в имени файла *nix. Разрешены любые символы, кроме NUL и /(некоторые символы необходимо экранировать при вводе или передаче в команды, особенно пробелы и переводы строк, но они все еще допустимы).

В вашем примере — D:это просто обычный файл!

Связанный контент