Зарезервированные символы в именах файлов

У меня создалось впечатление, что единственным символом, который не разрешен в именах файлов, был / , но я, похоже, не могу создать файл, чье имя содержит символы, такие как * , \ , " , : , | , < или > либо . Например,

 $ echo "*" > * $ touch "*" > touch: setting times of `*': No such file or directory 

Я пишу сценарий оболочки, который требует от пользователя ввода имени файла, и я хотел бы удостовериться, что имя не имеет никаких недопустимых символов. Есть ли где-нибудь список?

Обновить:

Я не понимал, что делаю это в файловой системе FAT32 (USB-накопитель), которая не позволяет «*» и другим символам в именах файлов. Неудивительно, что это не сработало. Извини, я виноват!!

2 Solutions collect form web for “Зарезервированные символы в именах файлов”

Я уверен, что единственными зарезервированными байтами являются 0 (ASCII Nul) и 0x2f (ASCII '/', косая черта).

Вы можете легко создать файл с '.', '\' И другими напуганными вещами. Думайте «имена файлов Unicode», которые содержат все виды странных байтовых значений.

Естественно, вы не можете дублировать имена файлов в одном каталоге, поэтому файлы с именем «.» и «..» обычно не могут быть сделаны простым пользователем: часть файловой системы ядра создает их при создании каталога.

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

Ну, на самом деле вы могли бы, просто сделайте одну цитату,

например, touch '*'

Или используйте свой FM:

введите описание изображения здесь

Для получения дополнительной информации см. Reserved characters and words на этой странице , как минимум / \ . .. / \ . .. не допускаются

  • Как выбрать ответ для интерактивной подсказки при установке из сценария оболочки
  • Невозможно использовать find -print в AWK
  • Команда SSH с перенаправлением файлов не работает
  • удалить строки, где значение поля меньше или равно 3 - sed или awk?
  • Что не так с этим вызовом sed -i?
  • Как удалить скрытую папку?
  • Передача списка из двух PID для xargs только убивает первый, используя ssh
  • Выполнить строку из сценария оболочки как набор команд оболочки
  • Сценарий оболочки ionCube дает ошибку
  • stdin, stderr, перенаправление и журналы
  • Как удалить ограничение длины от losetup -a
  • Linux и Unix - лучшая ОС в мире.