Какие символы разрешены и какие из них необходимо экранировать в командной строке в разных операционных системах?
В имени файла * nix запрещены только символы: NUL
и /
. В Windows только NUL
, :
, и \
действительно не разрешены, но многие приложения еще больше ограничивают это, также предотвращая ?
, *
, +
, и %
.
Ни в коем случае не используйте символы в имени файла необходимость для экранирования, кроме случаев, когда требуется, чтобы оболочка не интерпретировала их.
В статье Википедии о Имена файлов.
Вы можете найти это эссе информативным: Исправление имен файлов Unix / Linux / POSIX.
В этой статье сравниваются OS X и Windows XP: X против XP: запрещенные символы в именах файлов (PDF, см. Стр. 64-66).
Вещи, которых не должно быть в именах файлов за 1000 долларов, Алекс
Я не знаю, какие персонажи должны быть ООН-escaped, но в Linux, вероятно, не рекомендуется экранировать символы, которые могут иметь особое значение, такие как «n» (новая строка), «t» (табуляция) и другие, но обычно это не проблема при файловых операциях. Возможно, вы имеете в виду «сбежавший», а не «не сбежавший». Наиболее распространены те, которые интерпретируются оболочкой, например, пробел, «>», «<» и т. Д. См. Некоторые из статей, на которые я ссылался, для их обсуждения.
Если вы создадите файл в Windows с помощью проводника, используя один из следующих символов, он будет жаловаться, что символы не разрешены:
\ / : * ? " < > |
Хорошая ссылка здесь:
Именование файлов, путей и пространств имен
http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx
Microsoft далее заявляет:
"... на настольных платформах на базе Windows недопустимые символы пути могут включать символы ASCII / Unicode от 1 до 31, а также кавычки ("), меньше (<), больше (>), вертикальную черту (|), обратный пробел (\ b), null (\ 0) и табуляция (\ t) ".
http://msdn.microsoft.com/en-us/library/system.io.path.getinvalidpathchars.aspx
В Linux и других системах, совместимых с POSIX, символ «/» зарезервирован как разделитель каталогов, а «\ 0» (символ NULL) обозначает конец строки. Все остальное разрешено.