Регистр
Имена файлов в 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 байт.
|
Специальные символы (метасимволы)
Некоторые символы или последовательности симоволо символов зарезервированы для специального использования, и их не рекомендуется применять в именах файлов:
Символ | Специальное значение |
---|
Комментарий | * | При сравнении имен файлов - любая последовательность |
симоволовсимволов, кроме точки в начале имени файла (точка в начале имени файла обозначает "скрытый" файл). |
Не рекомендуется применять в именах файлов |
? | При сравнении имен файлов - один любой |
симоволсимвол. |
[abC1] | При сравнении имен файлов - любой символ из перечисленных в квадратных скобках |
[a-z] | При сравнении имен файлов - любой символ из указанного в квадраных скобках диапазона, например: - [a-z] любая латинская буква в нижнем регистре;
- [A-Z] любая латинская буква в верхнем регистре;
- [0-9] любая десятичная цифра;
- [0-9A-Fa-f] любая шестнадцатиричная цифра (в любом регистре);
- [a-zA-Z0-9] любая латинская буква в любом регистре или десятичная цифра.
|
/ | Символ "косая черта". В первой позиции имени обозначает корневой каталог, иначе разделяет имена в полном пути к файлу. |
\ | Символ "обратная косая черта". Придает метасимволу значение обычного символа |
- | Символ "минус". Обычно используется для указания параметров команд, и указание его первым в имени файла может повлечь попытку обработать файл как параметр. |
Не рекомендуется применять первым в именах файлов | _ | Символ "подчеркивание". В именах пакетов Debian символ "подчеркивание" отделяет имя пакета от номера версии, в иных случаях специального значения не имеет |
.Недопустимо применение в именах пакетов Debian. |
. | Символ "точка". В начале имени файла обозначает "скрытый" файл. Кроме того, имя, состоящее из единственного символа "точка" зарезервировано для обозначения текущего каталога. |
.. | Имя, состоящее из двух точек, зарезервировано для обозначения родительского каталога. |
$ | Символ "доллар". Используется для указания имен подстановочных переменных. |
& | Символ "амперсанд". |
Ипользуется Используется для указания асинхронного выполнения команды. |
" | Символ "двойная кавычка". Используется для ограничения строк". (см. раздел "Решение проблем" |
' | Символ "одинарная кавычка". Используется для ограничения строк". (см. раздел "Решение проблем" |
` | Символ "обратная кавычка". Используется для подстановки вывода команды. |
| Символ "пробел". Используется для разделения имен, команд и параметров команд. |
( ) { } ; | Простые и фигурные скобки, а также символ "точка с запятой". Используются для группирования и разделения команд. |
Допустимые символы в именах файлов
Минимальный безопасный набор симоволов для использования в именах файлов:
- буквы (как латиницы, так и кириллицы, в любом регистре);
- цифры;
- символ "." (точка);
- символ "_" (подчеркивание)
- символ "-" (тире).
Использование других символов не рекомендуется, так как их наличие в именах файлов может вызвать не корректную некорректную работу некоторых программ, хотя и допустимо использование любых символов.
Решение проблем с метасимволами в именах файлов при работе в командной строке
В Astra Linux можно создать имена файлов содержащие любой символ, включая непечатные (невидимые) символы и метасимволы. Далее приведены некоторые приемы для работы с такими именами файлов.
Автозавершение
Автозавершение позволяет использовать клавишу табуляции для автоматического подбора подходящих имен (файлов, команд, параметров команд). Для использования автозавершения следует ввести начальные буквы имени, нажать клавишу табуляции и автоматически будут предложены возможные варианты продолжения, включая содержащие метасимволы.
Замена невидимых символов
Для указания файлов с невидимыми символами можно использовать символ "*", обозначающий любой символ, например, переименовать файл с именем badname, содержащим невидимый символ:
Command |
---|
mv bad*name goodname |
Экранирование метасимволов
Для управления файлами с именами, содержащими метасимволы, можно использовать:
- символы "одинарная кавычка", внутри которых метасимволы потеряют свои специальные значения;
- символ "обратная косая черта", отменяющий специальное значение следующего за ним символа;
Например, команда:
Command |
---|
mv '*Astra*Linux*' Astra\ Linux |
позволит переименовать файл с "неудобным" именем *Astra*Linux* в файл с другим "неудобным" именем, содержащим пробел.
Для имен файлов, начинающихся с символа "минус" можно использовать указание их имени относительно текущего каталога:
Символы "./" в начале имени файла обозначают "текущий каталог", и позволяют скрыть лидирующее тире, чтобы команда rm не воспринимала имя файла как опцию.