NUL
и /
имеют свои системные функции. Другие символы - нет.
Это основы - остальное - мнения, домыслы и история. Слышал, читал и т.д. и включен только в качестве наполнителя, а не для обсуждения или спора:
против
и т.д. И так далее
Основная операционная система не устанавливает ограничений. Информация в систему и из системы - это потоки байтов. Если байт не имеет специального значения, не стоит создавать накладные расходы, добавляя проверки, которые должны обрабатываться в пространстве пользователя.
В любом случае, самой большой проблемой, скорее всего, будет довольно долгая история, когда новая строка и другие управляющие символы были разрешены.
Другое дело - что запрещать. Вы упоминаете новую строку, но в дискуссиях, начиная с каменного века UNIX, это обсуждалось, включая и другие символы. Следует ли запретить *
? Как насчет имен файлов, начинающихся с -
? Как насчет DEL
и ESC
? Должны ли быть запрещены все управляющие символы? И так далее, и так далее.
К сожалению, я не могу вспомнить ни одной цитаты на эту тему отцов-основателей или сопровождающих кода.