Linux имя файла запрещенные символы

Правила именования файловых объектов в Astra Linux

Термином «имена файловых объектов» обозначаются имена файлов и каталогов, далее для краткости используется термин «имена файлов», при этом правила именования для файлов и каталогов одинаковы. Далее п одразумевается, что используется стандартная для Astra Linux файловая система ext4.

Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 и РУСБ.10015-10 (очередное обновление 1.7)
  • Astra Linux Special Edition РУСБ.10015-37 (очередное обновление 7.7)
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и 2
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5)
  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)

Регистр

Имена файлов в Astra Linux чувствительны к регистру. То есть, например: AstraLinux, Astralinux, и astralinux — это три разных имени файлов.

Кодировка кириллицы

Для имен файлов, содержащих символы кириллицы, используется кодировка UTF-8. Следует помнить, что при использовании этой кодировки одному символу кириллицы соответствует 2 байта, другим символам (например, диакритическим) может соответствовать до четырех байт.

Длина имени файла и пути к файлу

Имена файлов в Linux могут быть длиной до 255 байт.

Полная длина пути к файлу (включая имя файла) не должна превышать 4096 байт.

При использовании кириллицы и диакритических символов следует помнить, что одному такому символу соответствует до четырех байт. В частности, увеличение длинны имен при их перекодировке может привести к затруднениям при копировании или разархивировании файлов из систем, использующих кодировку CP-1251 или KOI-8, в системы с кодировкой UTF-8.

При архивировании могут действовать ограничения, зависящие от используемой системы архивирования (и, в некоторых случаях, от типов архивируемых файлов). Более подробную информацию см. в документации на используемые архиваторы. Так, например:

  • архиватор tar:
    • версия gnu — длина не ограничена (эта версия входит в дистрибутивы Astra Linux);
    • версия v7 — максимальная длина полного имени файла 99 байт;
    • версия ustar — максимальная длина полного имени файла 256 байт, максимальная длина имени символьной ссылки — 100 байт;

    При использовании оптических дисков (файловая система ISO 9660) действуют следующие ограничения:

    • длина пути не более 1024 байта;
    • длина имени файла:
      • оригинальная версия ISO9660 — 32 байта;
      • версия файловой системы Joliet — 128 байт;
      • версия файловой системы Rockridge — 255 байт.

      Специальные символы (метасимволы)

      Некоторые символы или последовательности символов зарезервированы для специального использования, и их не рекомендуется применять в именах файлов:

      При сравнении имен файлов — любой символ из указанного в квадратных скобках диапазона, например:

      • [a-z] любая латинская буква в нижнем регистре;
      • [A-Z] любая латинская буква в верхнем регистре;
      • 5 любая десятичная цифра;
      • [0-9A-Fa-f] любая шестнадцатеричная цифра (в любом регистре);
      • [a-zA-Z0-9] любая латинская буква в любом регистре или десятичная цифра.

      Допустимые символы в именах файлов

      Минимальный безопасный набор символов для использования в именах файлов:

      • буквы (как латиницы, так и кириллицы, в любом регистре);
      • цифры;
      • символ «.» (точка);
      • символ «_» (подчеркивание)
      • символ «-» (тире).

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

      Решение проблем с метасимволами в именах файлов при работе в командной строке

      В Astra Linux можно создать имена файлов содержащие любой символ, включая непечатные (невидимые) символы и метасимволы. Далее приведены некоторые приемы для работы с такими именами файлов.

      Автозавершение

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

      Замена невидимых символов

      Для указания файлов с невидимыми символами можно использовать символ «*», обозначающий любой символ, например, переименовать файл с именем badname, содержащим невидимый символ:

      Экранирование метасимволов

      Для управления файлами с именами, содержащими метасимволы, можно использовать:

      • символы «одинарная кавычка», внутри которых метасимволы потеряют свои специальные значения;
      • символ «обратная косая черта», отменяющий специальное значение следующего за ним символа;

      позволит переименовать файл с «неудобным» именем *Astra*Linux* в файл с другим «неудобным» именем, содержащим пробел.

      Для имен файлов, начинающихся с символа «минус» можно использовать указание их имени относительно текущего каталога:

      Символы «./» в начале имени файла обозначают «текущий каталог», и позволяют скрыть лидирующее тире, чтобы команда rm не воспринимала имя файла как опцию.

      Имена файлов, начинающиеся с символа «-«

      Большинство команд используют символ «-» (минус) для обозначения опций (параметров) выполнения. Для того, чтобы можно было передавать командам аргументы (например, имена файлов), начинающиеся со знака «-» (минус) и не являющиеся опциями, используется специальная опция «—» (два минуса). Эта опция указывает, что все последующие аргументы команды не являются опциями независимо от наличия лидирующего символа минус. Например, чтобы удалить файл, имеющий имя «-filename», команду rm можно использовать в виде:

      Источник

      Запрещенные символы в именах каталогов Windows и Linux

      Системы Windows и Linux позволяют создавать и называть файлы и каталоги в соответствии с вашими требованиями, но некоторые символы нельзя использовать для названия каталогов и файлов. В этой статье мы узнаем о запрещенных символах в именах каталогов Windows и Linux.

      Запрещенные символы в именах каталогов Windows и Linux

      Некоторые символы являются печатными символами ASCII, а некоторые — непечатными. Вот символы, которые не поддерживаются для имен файлов и каталогов.

      Linux/Unix

      Windows

       < (меньше чем) >(больше чем) : (двоеточие - иногда работает, но на самом деле это NTFS Alternate Data Streams) " (двойная кавычка) / (прямая косая черта) \ (обратная косая черта) | (вертикальная полоса или труба) ? (вопросительный знак) * (звездочка)

      Запрещенные непечатаемые символы

      Здесь перечислены непечатаемые символы, которые нельзя использовать в качестве имен файлов или имен каталогов.

      Здесь перечислены непечатаемые символы, которые нельзя использовать в качестве имен файлов или имен каталогов.

      Linux/Unix

      Windows

      Запрещенные (зарезервированные) имена

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

      • CON, PRN, AUX, NUL
      • COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9
      • LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9

      Заключение

      Также помните, что Windows не различает символы верхнего и нижнего регистра в именах файлов и каталогов, поэтому если вы попытаетесь назвать один файл как a.txt, а другой файл в том же каталоге как A.txt, это не позволит вам этого сделать.

      Наконец, следует отметить, что в Windows имена файлов и каталогов не могут заканчиваться пробельными символами.

      В этой статье мы узнали о запрещенных символах для имен файлов и каталогов в Windows и Linux.

      Похожие записи:

      Источник

      Какие символы запрещены в именах каталогов Windows и Linux?

      Я знаю, что «/» является недопустимым в Linux, а в Windows (я думаю) недопустимы следующие «* . » / \ [ ] : ; |,»

      Что еще я упустил?

      Мне нужно полное руководство, которое учитывало бы двухбайтовые символы. Ссылки на внешние ресурсы меня также устраивают.

      Сначала мне нужно создать каталог в файловой системе, используя имя, которое может содержать запрещенные символы, поэтому я планирую заменить эти символы символами подчеркивания. Затем мне нужно записать этот каталог и его содержимое в zip-файл (используя Java), поэтому любые дополнительные советы относительно имен zip-каталогов будут приняты с благодарностью.

      Ответ 1

      1. /(прямая косая черта) .
      1. <(меньше чем) .
      2. > (больше чем) .
      3. :(двоеточие – иногда работает, но на самом деле это NTFS Alternate Data Streams) .
      4. » (двойная кавычка) .
      5. / (прямая косая черта) .
      6. \ (обратная косая черта) .
      7. | (вертикальная полоса или труба) .
      8. ? (вопросительный знак) .
      9. * (звездочка) .
      1. 0 (байт NULL) .
      1. 0-31 (управляющие символы ASCII) .
      1. CON, PRN, AUX, NUL .
      2. COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9 .
      3. LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 .
      1. Имена файлов не могут заканчиваться пробелом или точкой.
      1. Вы об этом не спрашивали, но на всякий случай: Двоеточие «:» и прямой слэш «/» в зависимости от контекста не разрешены (например, Finder поддерживает слэш, терминал – двоеточие).

      Ответ 2

      «Исчерпывающее руководство» по запрещенным символам имен файлов не будет работать в Windows, потому что она резервирует имена файлов, а также символы. Да, символы типа «* » ?» и другие запрещены, но существует бесконечное количество имен, состоящих только из допустимых символов, которые запрещены. Например, пробелы и точки являются допустимыми символами имени файла, но имена, состоящие только из этих символов, запрещены.

      Windows не различает символы верхнего и нижнего регистров, поэтому вы не можете создать папку с именем «A», если папка с именем «a» уже существует. Хуже того, такие, казалось бы, разрешенные имена, как «PRN» или «CON», и многие другие, зарезервированы и не разрешены. Windows также имеет несколько ограничений по длине; имя файла, допустимое в одной папке, может стать недействительным при перемещении в другую папку. Правила именования файлов и папок приведены в документации Microsoft.

      В общем случае нельзя использовать пользовательский текст для создания имен каталогов Windows. Если вы хотите разрешить пользователям называть все, что они хотят, вы должны создавать безопасные имена, такие как A, AB, A2 и т. д., хранить созданные пользователем имена и их эквиваленты путей в файле данных приложения и выполнять сопоставление путей в вашем приложении.

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

      Ответ 3

      В оболочках Unix вы можете заключить в одинарные кавычки почти все символы. За исключением одинарной кавычки, и вы не можете выразить управляющие символы, потому что «\» не расширяется. Доступ к самой одинарной кавычке из строки в кавычках возможен, потому что вы можете объединять строки с одинарными и двойными кавычками, например так, «’I»»»m»», который может быть использован для доступа к файлу под названием «I’m» (здесь также возможна двойная кавычка).

      Таким образом, вам следует избегать всех управляющих символов, потому что их слишком сложно вводить в оболочке. Остальное возможно, особенно файлы, начинающиеся с тире, потому что большинство команд считывают их как опции, если только перед ними не стоят два тире «—«, или вы не указываете их с помощью «./», что также скрывает начальное «-«.

      Если вы хотите быть вежливым, не используйте ни один из символов, которые оболочка и типичные команды используют как синтаксические элементы, иногда зависящие от позиции, например, вы можете использовать «-«, но не как первый символ; то же самое с «.», вы можете использовать его как первый символ, только когда вы имеете в виду («скрытый файл»). Когда вы имеете в виду, ваши имена файлов представляют собой управляющие последовательности VT100.

      Ответ 4

      Лучшее предложение, которое я смог придумать, – позволить пользователю называть файл так, как ему нравится. Используя обработчик ошибок, когда приложение пытается сохранить файл, перехватывайте любые исключения, предполагая, что виновато имя файла (очевидно, убедившись, что путь сохранения также в порядке), и предлагайте пользователю задать новое имя файла. Для достижения наилучших результатов поместите эту процедуру проверки в цикл, который продолжается до тех пор, пока пользователь не получит правильное имя или не отмени т операцию. Это работает лучше всего (по крайней мере, в VBA).

      Мы будем очень благодарны

      если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

      Источник

      Читайте также:  Увеличение дискового пространства линукс
Оцените статью
Adblock
detector