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