Каковы все недопустимые символы в файловой системе XFS? - PullRequest
1 голос
/ 16 марта 2009

Может ли кто-нибудь предоставить (или указать мне список) все недопустимые символы в файловой системе XFS? Я пишу приложение, которое должно очистить имена файлов.

EDIT:

Хорошо, поэтому файловые системы POSIX должны разрешать все символы, кроме символа NUL, косой черты и символа '.' и '..' имена файлов зарезервированы. Все остальные исключения относятся к уровню приложения. Спасибо!

Ответы [ 2 ]

4 голосов
/ 16 марта 2009

Файловые системы POSIX (включая XFS) допускают каждый символ в именах файлов, за исключением NUL (0x00) и косой черты (/; 0x2f).

  • NUL отмечает конец C-строки; поэтому это не разрешено в именах файлов.
  • / - разделитель каталогов, поэтому он не разрешен.
  • Имена файлов, начинающиеся с точки (.; 0x2e), считаются скрытыми файлами. Это пользовательское пространство, а не соглашение ядра или файловой системы.
  • Могут быть соглашения, которым вы следуете - например, имена файлов UTF-8 - в этом случае, есть много, намного больше ограничений, включая какую форму нормализации использовать.

Теперь вы, вероятно, хотите запретить и другие вещи; Имя файла со всевозможными странными символами не доставляет удовольствия. Я настоятельно рекомендую подход белого списка.

Кроме того, при обработке имен файлов остерегайтесь записи .. в каждом каталоге. Вы не хотите проходить его и разрешать произвольный путь.

Источник: Single Unix Spec v. 3, §3.169 , "символы, составляющие имя, могут быть выбраны из набора всех значений символов, кроме символа косой черты и нулевого байта."

0 голосов
/ 16 марта 2009

Согласно Википедии любой символ, кроме NUL, является допустимым в имени файла файловой системы XFS. Конечно, POSIX обычно не допускает косую черту '/' в имени файла. Кроме этого, все должно быть хорошо, включая международные символы.

...