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

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

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

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

Обновить:

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

  • Есть ли способ для сценария оболочки узнать, какая программа его выполнила?
  • Bash regex, строка соответствия из двух строк
  • Исходный файл .bashrc в bash глобально
  • ссылочная переменная оболочки $ COLUMNS из сценария bash
  • Использование tmux для презентаций
  • Как выбрать ответ для интерактивной подсказки при установке из сценария оболочки
  • Выдать команду в каждом каталоге
  • Как использовать grep для поиска строк, начинающихся с определенного символа в bash
  • 2 Solutions collect form web for “Зарезервированные символы в именах файлов”

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

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

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

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

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

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

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

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

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

    Interesting Posts

    Итеративно отредактируйте один файл

    Идентификатор родителя-сиротца не равен 1, когда родительский процесс выполняется с терминала GNOME

    Должен ли я заботиться о приложениях, которые увеличивают загрузку системы во избежание перегрева?

    Использование виртуального процессора (многоядерный процессор) – определение процесса

    Как разделить длинное выражение sed на несколько строк?

    Как сделать первичную запись linux для символов libc и libstdc ++?

    Нужен ли мне специальный брандмауэр на персональном компьютере?

    Как объединить несколько жестких дисков?

    проблема с тем, как недавно созданные пусковые установки гномов работают против пусковых установок, восстановленных после загрузки системы. (изменение названия для ясности)

    Проблема с беспроводным монитором Intel Advanced-N 6235

    Завершение SSH, вызванное скриптом (обработка SIGPIPE?)

    Почему «Выполнение выхода 130 – это не то же самое, что умирать от SIGINT»?

    В чем разница между X11R7.7 и X Server 1.14.4?

    Относительно отдельного файла в несколько файлов в соответствии с разделом строк

    Преобразование update-rc.d redis_6379 по умолчанию в команду chkconfig

    Linux и Unix - лучшая ОС в мире.